Python: Đối số và tham số hàm

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Bạn có thể gọi một hàm bằng cách sử dụng các loại đối số và tham số sau:

Đối số bắt buộc

Các đối số bắt buộc là các đối số được truyền cho một hàm theo đúng thứ tự vị trí của các tham số tại phần định nghĩa hàm. Ở đây, số lượng đối số trong lệnh gọi hàm phải khớp chính xác với định nghĩa hàm.

Trong ví dụ sau, để gọi hàm printme() thì ta cần phải truyền một đối số, nếu không nó sẽ gây ra lỗi cú pháp:

# đnh nghĩa hàm có mt tham sdef printMe(str):
  "in ra ni dung trong tham s str"
  print(str)
  return;

# nhưng li gi hàm như sau là sai vì không có đi sprintMe()

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

Traceback (most recent call last):
  File "E:/Courses/Python/demo.py", line 8, in <module>
    printMe()
TypeError: printMe() missing 1 required positional argument: 'str'

Tham số từ khóa

Các đối số từ khóa có liên quan đến các lệnh gọi hàm. Khi bạn sử dụng các đối số từ khóa trong một lệnh gọi hàm thì trình gọi sẽ xác định các đối số thông qua tên tham số.

Điều này cho phép ta bỏ qua các đối số hoặc đặt chúng không theo thứ tự vì trình thông dịch Python có thể sử dụng các từ khóa được cung cấp để đối sánh các giá trị với các tham số. Bạn cũng có thể truyền từ khóa đến hàm printMe() theo cách sau:

# đnh nghĩa hàm
def printMe(str):
  print(str)
  return;

# gi hàm printMe()
printMe(str = "I love Python")

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

I love Python

Ví dụ sau đây bạn sẽ thấy sự rõ ràng hơn về đối số từ khóa, trong đó thứ tự của các tham số không còn quan trọng.

def printInfo(name, age):
  print("Name:", name)
  print("Age:", age)
  return;

printInfo(age=5, name="V1Study")

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

Name: V1Study
Age: 5

Tham số mặc định

Đối số mặc định là đối số giả định giá trị mặc định nếu giá trị không được cung cấp trong lệnh gọi hàm cho đối số đó. Ví dụ sau đây đưa ra một ý tưởng về các đối số mặc định, trong đó sẽ in ra giá trị mặc định của tham số age nếu nó không nhận được dữ liệu:

def printInfo(name, age = 6):
  print("Name:", name)
  print("Age:", age)
  return;

printInfo(age=5, name="V1Study")
printInfo(name="V1Study Academy") #thiếu đi snhưng không bli

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

Name: V1Study
Age: 5
Name: V1Study Academy
Age: 6

Tham số có độ dài thay đổi

Trong trường hợp định nghĩa một hàm cần nhận nhiều dữ liệu thì tức là ta cần khai báo nhiều tham số, lúc này ta sẽ thấy sự bất tiện vì mất khá nhiều thời gian. Python đưa ra giải pháp là sử dụng tham số có độ dài thay đổi. Các tham số này được gọi là tham số có độ dài thay đổi và không có tên trong định nghĩa hàm, không giống như các tham số bắt buộc và mặc định.

Cú pháp cho định nghĩa hàm với các tham số không phải từ khóa là như sau:

def functionname([formal_args,] *var_args_tuple ):
   "function_docstring"
   function_suite
   return [expression]

Dấu hoa thị (*) được đặt trước tên biến sẽ mang nghĩa nhận các giá trị của tất cả các đối số không có từ khóa. Bộ giá trị này được phép trống (tức không chứa giá trị nào). Sau đây là một ví dụ đơn giản

nh nghĩa hàm vi yêu cu phi nhn được ít nht mt dliu:
#arg1 là tham sbt buc phi nhn được dliu
#*vartuple là tham skhông bt buc phi nhn được dliu
def printInfo(arg1, *vartuple):
  print("arg1:")
  print(arg1)
  print("Other parameters:")
  for var in vartuple:
  print(var)
  print("=============")
  return;

printInfo(10)
printInfo(20, 30, 40)

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

arg1:
10
Other parameters:
=============
arg1:
20
Other parameters:
30
40
=============
» Tiếp: Hàm ẩn danh (lambda)
« Trước: Lời gọi hàm (Call the function)
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!