Tìm hiểu về các loại đối số khác nhau được sử dụng trong định nghĩa hàm Python
Ảnh của Sharon McCutcheon từ Pexels5 loại đối số trong hàm Python Định nghĩa:
print[add[3,4]]
4
#Output:17print[add[3,4]]
5
#Output:17print[add[3,4]]
6
#Output:17print[add[3,4]]
7
#Output:17print[add[3,4]]
8
#Output:17
Định nghĩa chức năng Python:
Định nghĩa chức năng bắt đầu với từ khóa
print[add[3,4]]
9. Nó phải được theo sau bởi tên hàm và danh sách dấu ngoặc đơn của các tham số chính thức. Các câu lệnh tạo thành phần thân của hàm bắt đầu ở dòng tiếp theo và phải được thụt vào. - Tài liệu Python
#Output:17
Các tham số chính thức được đề cập trong định nghĩa chức năng. Các tham số thực tế [đối số] được truyền trong một cuộc gọi chức năng.are mentioned in the function definition. Actual parameters[arguments] are passed during a function call.
Chúng ta có thể xác định một hàm với một số lượng đối số.
1. Đối số mặc định:
- Đối số mặc định là các giá trị được cung cấp trong khi xác định các chức năng.
- Toán tử gán
print[add[2,3,4]]
0 được sử dụng để gán giá trị mặc định cho đối số.
#Output:9 - Đối số mặc định trở thành tùy chọn trong các cuộc gọi chức năng.
- Nếu chúng tôi cung cấp giá trị cho các đối số mặc định trong các cuộc gọi chức năng, nó sẽ ghi đè giá trị mặc định.
- Hàm có thể có bất kỳ số lượng đối số mặc định nào
- Đối số mặc định nên tuân theo các đối số không mặc định.
Example:
Trong ví dụ dưới đây, giá trị mặc định được đưa ra cho đối số
print[add[2,3,4]]
#Output:9
1and print[add[2,3,4]]
#Output:9
2def add[a,b=5,c=10]:
return [a+b+c]
Chức năng này có thể được gọi theo 3 cách
- Chỉ đưa ra đối số bắt buộc
print[add[3]]
#Output:18
2. Đưa ra một trong các đối số tùy chọn.3 được gán cho print[add[2,3,4]]
3, 4 được gán cho
#Output:9print[add[2,3,4]]
1.
#Output:9
3 is assigned to
print[add[2,3,4]]
#Output:9
3, 4 is assigned to print[add[2,3,4]]
#Output:9
1.print[add[3,4]]
#Output:17
3. Đưa ra tất cả các lập luận
print[add[2,3,4]]
#Output:9
Lưu ý: Các giá trị mặc định chỉ được đánh giá một lần tại điểm của định nghĩa hàm trong phạm vi xác định. Vì vậy, nó tạo ra sự khác biệt khi chúng ta vượt qua các đối tượng có thể thay đổi như danh sách hoặc từ điển làm giá trị mặc định.Default values are evaluated only once at the point of the function definition in the defining scope. So, it makes a difference when we pass mutable objects like a list or dictionary as default values.
2. Đối số từ khóa:
Các chức năng cũng có thể được gọi là bằng cách sử dụng các đối số từ khóa của mẫu
print[add[2,3,4]]
#Output:9
5.Trong một cuộc gọi hàm, các giá trị được truyền qua các đối số không cần phải theo thứ tự các tham số trong định nghĩa hàm. Điều này có thể đạt được bằng các đối số từ khóa. Nhưng tất cả các đối số từ khóa phải khớp với các tham số trong định nghĩa hàm.
Example:
def add[a,b=5,c=10]:
return [a+b+c]
Gọi chức năng
print[add[2,3,4]]
#Output:9
6 bằng cách đưa ra các đối số từ khóa- Tất cả các tham số được đưa ra làm đối số từ khóa, vì vậy không cần duy trì cùng một thứ tự.
print [add[b=10,c=15,a=20]]
#Output:45
2. Trong một cuộc gọi chức năng, chỉ đưa ra đối số bắt buộc như một đối số từ khóa. Đối số mặc định tùy chọn được bỏ qua.
print [add[a=10]]
#Output:25
3. Đối số vị trí
Trong một cuộc gọi hàm, các giá trị được truyền qua các đối số phải theo thứ tự các tham số trong định nghĩa hàm. Đây được gọi là đối số vị trí.positional arguments.
Đối số từ khóa chỉ nên tuân theo các đối số vị trí.
Example:
def add[a,b,c]:
return [a+b+c]
Hàm trên có thể được gọi theo hai cách:
- Trong quá trình gọi chức năng, tất cả các đối số được đưa ra dưới dạng đối số vị trí. Các giá trị được truyền qua các đối số được truyền đến các tham số theo vị trí của chúng.
print[add[2,3,4]]
7 được gán cho
#Output:9print[add[2,3,4]]
3,
#Output:9print[add[2,3,4]]
9 được gán cho
#Output:9print[add[2,3,4]]
1 và
#Output:9def add[a,b=5,c=10]:
1 được gán cho
return [a+b+c]print[add[2,3,4]]
2.
#Output:9
print [add[10,20,30]]
#Output:60
2. Đưa ra sự kết hợp giữa các đối số vị trí và từ khóa, các đối số từ khóa phải luôn tuân theo các đối số vị trí
print [add[10,c=30,b=20]]
#Output:60
Mặc định so với vị trí so với đối số từ khóa:
Những điểm quan trọng cần nhớ:
Ảnh của tác giả1. Đối số mặc định nên tuân theo các đối số không mặc định
print[add[3]]
#Output:18
02. Đối số từ khóa nên tuân theo các đối số vị trí
print[add[3]]
#Output:18
13. Tất cả các đối số từ khóa được truyền phải khớp với một trong các đối số được chấp nhận bởi hàm và thứ tự của chúng không quan trọng.
print[add[3]]
#Output:18
24. Không có đối số nào sẽ nhận được một giá trị nhiều hơn một lần
print[add[3]]
#Output:18
35. Đối số mặc định là đối số tùy chọn
Ví dụ 1: Chỉ đưa ra các đối số bắt buộc Giving only the mandatory arguments
print[add[3]]
#Output:18
4Ví dụ 2: Đưa ra tất cả các đối số [đối số tùy chọn và bắt buộc]Giving all arguments [optional and mandatory arguments]
print[add[3]]
#Output:18
5Đối số có độ dài thay đổi
Các đối số có độ dài thay đổi còn được gọi là các đối số tùy ý. Nếu chúng ta không biết số lượng đối số cần thiết cho chức năng trước, chúng ta có thể sử dụng các đối số tùy ýarbitrary arguments. If we don’t know the number of arguments needed for the function in advance, we can use arbitrary arguments
Hai loại đối số tùy ý
- lập luận vị trí tùy ý
- Đối số từ khóa tùy ý
4. Đối số vị trí tùy ý:
Đối với đối số vị trí tùy ý, dấu hoa thị [*] được đặt trước một tham số trong định nghĩa hàm có thể giữ các đối số độ dài biến không thay đổi. Những lập luận này sẽ được kết thúc trong một tuple. Trước khi có số lượng đối số, không có hoặc nhiều đối số bình thường hơn có thể xảy ra.asterisk [*] is placed before a parameter in function definition which can hold non-keyword variable-length arguments. These arguments will be wrapped up in a tuple. Before the variable number of arguments, zero or more normal arguments may occur.
print[add[3]]
#Output:18
65. Từ khóa từ khóa: đối số:
Đối với đối số vị trí tùy ý, dấu hoa thị kép [**] được đặt trước một tham số trong hàm có thể giữ các đối số độ dài biến từ khóa.double asterisk [**] is placed before a parameter in a function which can hold keyword variable-length arguments.
Example:
print[add[3]]
#Output:18
7Các tham số đặc biệt:
Theo tài liệu Python:
Theo mặc định, các đối số có thể được chuyển đến hàm Python theo vị trí hoặc rõ ràng bằng từ khóa. Đối với khả năng đọc và hiệu suất, có ý nghĩa khi hạn chế cách các đối số có thể được thông qua để nhà phát triển chỉ cần nhìn vào định nghĩa chức năng để xác định xem các mục được truyền theo vị trí, theo vị trí hoặc từ khóa hoặc từ khóa.
Một định nghĩa chức năng có thể trông giống như:
Ảnh của tác giảTrong đó
def add[a,b=5,c=10]:
return [a+b+c]
3 và def add[a,b=5,c=10]:
return [a+b+c]
4 là tùy chọn. Nếu được sử dụng, các ký hiệu này chỉ ra loại tham số bằng cách các đối số có thể được truyền đến hàm: chỉ có vị trí, từ vị trí hoặc từ khóa và chỉ từ khóa.- Đối số từ vị trí hoặc từ khóa
- Chỉ các tham số vị trí
- Đối số chỉ từ khóa
1. Đối số từ vị trí hoặc từ khóa
Nếu
def add[a,b=5,c=10]:
return [a+b+c]
3 và def add[a,b=5,c=10]:
return [a+b+c]
4 không có trong định nghĩa hàm, các đối số có thể được truyền đến một hàm theo vị trí hoặc từ khóaprint[add[3]]
#Output:18
82. Các tham số chỉ vị trí
Các tham số chỉ có vị trí được đặt trước một
def add[a,b=5,c=10]:
return [a+b+c]
3 [phần chuyển tiếp] trong định nghĩa hàm. def add[a,b=5,c=10]:
return [a+b+c]
3 được sử dụng để phân tách hợp lý các tham số chỉ có vị trí với phần còn lại của các tham số. Các tham số sau def add[a,b=5,c=10]:
return [a+b+c]
3 có thể là từ vị trí hoặc từ khóa chỉ.print[add[3]]
#Output:18
9Nếu chúng tôi chỉ định các đối số từ khóa cho các đối số chỉ vị trí, nó sẽ tăng loại.TypeError.
print[add[3,4]]
#Output:17
03. Từ khóa chỉ đối số
Để đánh dấu các tham số là chỉ từ khóa, hãy đặt một
def add[a,b=5,c=10]:
return [a+b+c]
4 trong danh sách đối số ngay trước tham số chỉ từ khóa đầu tiên.print[add[3,4]]
#Output:17
1Nếu chúng tôi chỉ định các đối số vị trí cho các đối số chỉ từ khóa, nó sẽ tăng loại.TypeError.
print[add[3,4]]
#Output:17
2Tất cả 3 quy ước gọi được sử dụng trong cùng một hàm
Trong ví dụ dưới đây, hàm
print[add[2,3,4]]
#Output:9
6 có cả ba đối số________ 33, ________ 31-Chỉ đối số vị trí ________ 32 đối số từ khóa hoặc từ khóa
print[add[2,3,4]]
#Output:9
2-positional or keyword argumentsprint [add[b=10,c=15,a=20]]
#Output:45
5-keyword-only argumentsprint[add[3,4]]
#Output:17
3Những điểm quan trọng cần nhớ:
- Sử dụng chỉ vị trí nếu bạn muốn tên của các tham số không có sẵn cho người dùng. Điều này rất hữu ích khi tên tham số không có ý nghĩa thực sự. positional-only if you want the name of the parameters to not be available to the user. This is useful when parameter names have no real meaning.
- Sử dụng chỉ vị trí nếu bạn muốn thực thi thứ tự của các đối số khi hàm được gọi.positional-only if you want to enforce the order of the arguments when the function is called.
- Sử dụng từ khóa chỉ khi tên có ý nghĩa và định nghĩa hàm dễ hiểu hơn bằng cách rõ ràng với tên.keyword-only when names have meaning and the function definition is more understandable by being explicit with names.
- Sử dụng từ khóa chỉ khi bạn muốn ngăn người dùng dựa vào vị trí của đối số được thông qua.keyword-only when you want to prevent users from relying on the position of the argument being passed.
Xem không gian này để biết thêm các bài viết về Python và Datascience. Nếu bạn thích đọc thêm các hướng dẫn của tôi, hãy theo dõi tôi trên Medium, LinkedIn, Twitter.Medium, LinkedIn, Twitter.
Cảm ơn vì đã đọc!
Cấp độ lên mã hóa
Cảm ơn vì đã là một phần của cộng đồng của chúng tôi! Lên lên là chuyển đổi tuyển dụng công nghệ. Tìm công việc hoàn hảo của bạn tại các công ty tốt nhất.Find your perfect job at the best companies.