Python - Keyword Arguments

Keyword Arguments

Python cho phép truyền các đối số hàm dưới dạng từ khóa, còn được gọi là đối số có tên. Variables trong function definition được sử dụng làm từ khóa. Khi hàm được gọi, bạn có thể chỉ định rõ ràng tên và giá trị của nó.

Calling Function With Keyword Arguments

Ví dụ sau đây minh họa các đối số từ khóa trong Python. Trong lần gọi hàm thứ hai, chúng ta đã sử dụng các đối số từ khóa.

# Function definition is here
def printinfo( name, age ):
   "This prints a passed info into this function"
   print ("Name: ", name)
   print ("Age ", age)
   return

# Now you can call printinfo function
# by positional arguments
printinfo ("Naveen", 29)

# by keyword arguments
printinfo(name="miki", age = 30)

Nó sẽ tạo ra output

Name: Naveen
Age 29
Name: miki
Age 30

Order of Keyword Arguments

Theo mặc định, hàm gán các giá trị cho các tham số theo thứ tự xuất hiện. Tuy nhiên, khi sử dụng tham số theo tên (keyword arguments), không cần phải tuân theo thứ tự của các tham số chính thức trong định nghĩa hàm. Việc sử dụng tham số theo tên là tùy chọn. Bạn có thể sử dụng cách gọi hỗn hợp. Bạn có thể truyền giá trị cho một số tham số mà không cần tên, và cho những tham số khác với tên.

Example

Hãy cùng cố gắng hiểu với sự trợ giúp của định nghĩa hàm sau đây −

def division(num, den):
   quotient = num/den
   print ("num:{} den:{} quotient:{}".format(num, den, quotient))

division(10,5)
division(5,10)

Vì các giá trị được gán theo vị trí, đầu ra sẽ như sau −

num:10 den:5 quotient:2.0
num:5 den:10 quotient:0.5

Example

Thay vì truyền các giá trị bằng đối số vị trí, hãy gọi hàm với các đối số từ khóa −

def division(num, den):
   quotient = num/den
   print ("num:{} den:{} quotient:{}".format(num, den, quotient))
   
division(num=10, den=5)
division(den=5, num=10)

Khác với các đối số theo vị trí, thứ tự của các đối số từ khóa không quan trọng. Do đó, nó sẽ tạo ra đầu ra sau đây −

num:10 den:5 quotient:2.0
num:10 den:5 quotient:2.0

Tuy nhiên, các tham số vị trí phải đứng trước các tham số từ khóa khi sử dụng cách gọi hỗn hợp.

Example

Hãy thử gọi hàm division() với các tham số từ khóa cũng như tham số vị trí.

def division(num, den):
   quotient = num/den
   print ("num:{} den:{} quotient:{}".format(num, den, quotient))

division(num = 5, 10)

Vì đối số vị trí không thể xuất hiện sau các đối số từ khóa, Python sẽ báo lỗi sau:

    division(num=5, 10)
                      ^
SyntaxError: non-keyword arg after keyword arg