Python - Default Arguments

Python Default Arguments

Python cho phép define a function với default value được gán cho một hoặc nhiều tham số chính thức. Python sử dụng giá trị mặc định cho tham số như vậy nếu không có giá trị nào được truyền vào. Nếu bất kỳ giá trị nào được truyền vào, giá trị mặc định sẽ bị ghi đè bằng giá trị thực tế được truyền vào.

Default arguments in Python are the function arguments that will be used if no arguments are passed to the function call.

Example of Default Arguments

Ví dụ dưới đây cho thấy việc sử dụng các tham số mặc định trong Python. Ở đây, lần gọi thứ hai đến hàm sẽ không truyền giá trị cho tham số "city" , do đó giá trị mặc định của nó "Hyderabad" sẽ được sử dụng.

# Function definition 
def showinfo( name, city = "Hyderabad" ):
   "This prints a passed info into this function"
   print ("Name:", name)
   print ("City:", city)
   return

# Now call showinfo function
showinfo(name = "Ansh", city = "Delhi")
showinfo(name = "Shrey")

Nó sẽ tạo ra output sau đây −

Name: Ansh
City: Delhi
Name: Shrey
City: Hyderabad

Example: Calling Function Without Keyword Arguments

Hãy xem một ví dụ khác gán giá trị mặc định cho một tham số của hàm. Hàm percent() có một tham số mặc định tên là "maxmarks" được đặt thành 200. Do đó, chúng ta có thể bỏ qua giá trị của tham số thứ ba khi gọi hàm.

# function definition 
def percent(phy, maths, maxmarks=200):
   val = (phy + maths) * 100/maxmarks
   return val

phy = 60
maths = 70
# function calling with default argument
result = percent(phy, maths)
print ("percentage:", result)

phy = 40
maths = 46
result = percent(phy, maths, 100)
print ("percentage:", result)

Khi thực thi, đoạn mã này sẽ tạo ra đầu ra sau:

percentage: 65.0
percentage: 86.0

Mutable Objects as Default Argument

Python đánh giá các tham số mặc định chỉ một lần khi hàm được định nghĩa, chứ không phải mỗi lần hàm được gọi. Do đó, nếu bạn sử dụng một tham số mặc định có thể thay đổi và sửa đổi nó trong hàm đã cho, thì các giá trị giống nhau sẽ được tham chiếu trong các lần gọi hàm tiếp theo.

Those Python objects that can be changed after creation are called as mutable objects.

Example

Mã dưới đây giải thích cách sử dụng các đối tượng có thể thay đổi (mutable objects) làm đối số mặc định trong Python.

def fcn(nums, numericlist = []):
   numericlist.append(nums + 1)
   print(numericlist) 
    
# function calls
fcn(66)
fcn(68)
fcn(70)

Khi thực thi đoạn mã trên, nó sẽ tạo ra đầu ra sau:

[67]
[67, 69]
[67, 69, 71]