Ý tưởng về các tham số hàm trong Python là cho phép một lập trình viên đang sử dụng hàm đó, xác định các biến động trong hàm đó. Ví dụ
def simple_addition[num1,num2]: answer = num1 + num2 print['num1 is', num1] print[answer] simple_addition[5,3]
Ở đây, chúng tôi đã xác định tên chức năng của mình là simple_addition. Trong các tham số của hàm [thường được gọi tắt là parms], chúng ta chỉ định các biến có tên là num1 và num2
Tiếp theo, bên trong hàm, chúng ta nói biến trả lời mới này bằng bất kỳ giá trị nào của num1 cộng với num2. Sau đó, chúng tôi in ra num1 là gì, bất kể nó là gì. Cuối cùng, dòng cuối cùng của hàm này chỉ in ra biến trả lời, là num1 cộng num2
Bây giờ, để chạy chức năng này và sử dụng các tham số này, chúng tôi chạy simple_addition[5,3]. Thao tác này sẽ chạy hàm simple_addition sử dụng các tham số của num1=5 và num2=3. Sau đó, chương trình của chúng tôi tính tổng 5 và 3 với nhau, sau đó chúng tôi in ra rằng num1 là 5 và cuối cùng chúng tôi in ra "đáp số" đã được xác định sẵn, đó là tổng của 5 và 3, tất nhiên là 8
Không có giới hạn về số lượng tham số chức năng bạn có. Nếu bạn muốn chỉ định nghĩa của các tham số này mà không nói tham số, như khi chúng ta vừa nói 5 và 3, thay vì đặt tham số=5, thì bạn phải đặt chúng theo đúng thứ tự. Nếu bạn có nhiều tham số khó nhớ thứ tự của chúng, bạn có thể làm điều gì đó như
simple_addition[num2=3,num1=5]
Trong trường hợp đó, khi bạn gọi hàm và xác định các tham số, bạn có thể thấy cách chúng tôi thực sự xác định num2 trước num1, mặc dù trong định nghĩa hàm, chúng tôi yêu cầu chúng theo cách khác. Miễn là bạn chỉ định tham số bạn đang xác định, bạn có thể xáo trộn chúng. Nếu không, bạn phải giữ chúng theo thứ tự
Cuối cùng, không chỉ chúng phải theo thứ tự hoàn hảo mà bạn không được chỉ định quá nhiều hoặc hai định nghĩa
Luôn có một chút nhầm lẫn giữa các nhà phát triển vừa chớm nở giữa một tham số và một đối số, bài viết này tập trung làm rõ sự khác biệt giữa chúng và giúp bạn sử dụng chúng một cách hiệu quả
Thông số
Tham số là biến được xác định trong dấu ngoặc đơn trong khi định nghĩa hàm. Đơn giản là chúng được viết khi chúng ta khai báo một hàm.
Thí dụ
Python3
33
34
35
36
37
38____20
31
32
33
35
35
36
37
38
39
đầu ra
3
Tranh luận
Đối số là một giá trị được truyền cho một hàm khi nó được gọi. Nó có thể là một biến, giá trị hoặc đối tượng được truyền cho một hàm hoặc phương thức làm đầu vào. Chúng được viết khi chúng ta đang gọi hàm
Thí dụ
Python3
34
35
36
37
38____20
31
32
33
simple_addition[num2=3,num1=5]69
35
35
36
37
38
39
đầu ra
3
Các loại đối số trong python
Các hàm Python có thể chứa hai loại đối số
- Đối số vị trí
- Đối số từ khóa
Đối số vị trí
Đối số vị trí là cần thiết để được đưa vào theo thứ tự thích hợp i. e đối số đầu tiên luôn được liệt kê đầu tiên khi hàm được gọi, đối số thứ hai cần được gọi là đối số thứ hai, v.v.
Thí dụ
Python3
34
simple_addition[num2=3,num1=5]67
37
38____830
31
332
33
334
335
336______837
37
339
39
đầu ra
simple_addition[num2=3,num1=5]6
Đối số từ khóa
Đối số từ khóa là một đối số được truyền cho một hàm hoặc phương thức được đặt trước bởi một từ khóa và một dấu bằng. Thứ tự của đối số từ khóa đối với một đối số từ khóa khác không quan trọng vì các giá trị đang được chỉ định rõ ràng
Bài viết này giải thích các đối số chức năng khác nhau của Python với các ví dụ rõ ràng về cách sử dụng chúng. Nhưng trước khi tìm hiểu chi tiết tất cả các đối số của hàm, trước tiên, hãy hiểu cách sử dụng đối số hoặc tham số trong hàm
Cũng thấy
- Bài tập hàm Python
- Trắc nghiệm hàm Python
Mục lục
- Đối số chức năng là gì?
- Các loại đối số chức năng
- Đối số mặc định
- Đối số từ khóa
- Đối số vị trí
- Những điểm quan trọng cần nhớ về đối số chức năng
- Đối số có độ dài thay đổi
- Đối số vị trí tùy ý [*args]
- Đối số từ khóa tùy ý [**kwargs]
Đối số chức năng là gì?
Khi chúng ta định nghĩa và gọi hàm Python, thuật ngữ tham số và đối số được sử dụng để truyền thông tin cho hàm
- tham số. Nó là biến được liệt kê bên trong dấu ngoặc đơn trong định nghĩa hàm
- tranh luận. Nó là một giá trị được gửi đến hàm khi nó được gọi. Đó là dữ liệu mà hàm thực hiện một số hành động và trả về kết quả
Thí dụ
Trong ví dụ này, hàm
392 được xác định với ba tham số,
393,
394,
395 và in tổng của cả ba giá trị của các đối số được truyền trong khi gọi hàm
33
đầu ra
34
Ghi chú. Hàm phải được gọi với số lượng đối số chính xác theo mặc định. Ví dụ, hàm trên cần 3 đối số, vì vậy bạn phải gọi hàm
396 với 3 đối số;
Chức năng có cần đối số không?
Không bắt buộc phải sử dụng đối số trong định nghĩa hàm. Nhưng nếu bạn cần xử lý dữ liệu người dùng, bạn cần có các đối số trong định nghĩa hàm để chấp nhận dữ liệu đó
Ngoài ra, chúng tôi sử dụng đối số trong định nghĩa hàm khi chúng tôi cần thực hiện cùng một tác vụ nhiều lần với các dữ liệu khác nhau
Có thể gọi hàm mà không có đối số không?
Nếu hàm được xác định bằng các tham số, các đối số được truyền vào phải khớp với một trong các đối số mà hàm chấp nhận khi gọi
Các loại đối số chức năng
Có nhiều cách khác nhau để sử dụng các đối số trong một hàm. Trong Python, chúng ta có 4 loại đối số hàm sau
- Đối số mặc định
- Đối số từ khóa [đối số được đặt tên]
- đối số vị trí
- Đối số tùy ý [đối số có độ dài thay đổi
3
97 và3
98]
Đối số mặc định
Trong một hàm, các đối số có thể có các giá trị mặc định. Chúng tôi gán các giá trị mặc định cho đối số bằng cách sử dụng toán tử '=' [gán] tại thời điểm định nghĩa hàm. Bạn có thể định nghĩa một hàm với bất kỳ số lượng đối số mặc định nào
Giá trị mặc định của một đối số sẽ được sử dụng bên trong một hàm nếu chúng ta không truyền giá trị cho đối số đó tại thời điểm gọi hàm. Do đó, các đối số mặc định trở thành tùy chọn trong khi gọi hàm
Nó ghi đè giá trị mặc định nếu chúng ta cung cấp một giá trị cho các đối số mặc định trong khi gọi hàm
Hãy để chúng tôi hiểu điều này với một ví dụ
Thí dụ
Hãy định nghĩa một hàm
399 với bốn đối số
390,
391,
392 và
393. Trong hàm này,
392 và
393 là các đối số mặc định có giá trị mặc định
- Nếu bạn gọi một hàm không có đối số
3
93 và3
92 thì giá trị mặc định của3
92 và3
93 sẽ được sử dụng - Các tham số
3
91 và3
90 không có giá trị mặc định và được yêu cầu [bắt buộc] trong khi gọi hàm
39
Truyền một trong các đối số mặc định
Nếu bạn chuyển các giá trị của đối số
392 và
393 trong khi gọi một hàm, thì các giá trị đó sẽ được sử dụng thay cho giá trị mặc định
Thí dụ
39
đầu ra
35
Đối số từ khóa
Thông thường, tại thời điểm gọi hàm, các giá trị được gán cho các đối số theo vị trí của chúng. Vì vậy, chúng ta phải chuyển các giá trị theo cùng một trình tự được xác định trong định nghĩa hàm
Ví dụ: khi chúng tôi gọi
354, giá trị “Jon” được gán cho tên đối số và tương tự, 12 đến
391, v.v.
Chúng ta có thể thay đổi hành vi này bằng cách sử dụng đối số từ khóa
Đối số từ khóa là những đối số trong đó giá trị được gán cho đối số theo từ khóa [tên] của chúng khi hàm được gọi. Nó được đặt trước bởi tên biến và toán tử gán [
356]. Keyword Argument còn được gọi là đối số được đặt tên
Thí dụ
39
đầu ra
30
Thay đổi trình tự của các đối số từ khóa
Ngoài ra, bạn có thể thay đổi trình tự của các đối số từ khóa bằng cách sử dụng tên của chúng trong lệnh gọi hàm
Python cho phép các chức năng được gọi bằng cách sử dụng đố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. Khi chúng ta gọi hàm theo cách này, thứ tự [vị trí] của các đối số có thể bị thay đổi
Thí dụ
31
Đối số vị trí
Đối số vị trí là những đối số mà các giá trị được gán cho các đối số theo vị trí của chúng khi hàm được gọi. Ví dụ: đối số vị trí đầu tiên phải là số 1 khi hàm được gọi. Đối số vị trí thứ 2 cần phải là thứ 2 khi hàm được gọi, v.v.
Theo mặc định, các hàm Python được gọi bằng các đối số vị trí
Thí dụ. Chương trình trừ 2 số bằng đối số vị trí
32
Ghi chú. Nếu bạn cố gắng chuyển nhiều đối số hơn, bạn sẽ gặp lỗi
33
đầu ra
340
Ghi chú. Trong số đối số vị trí và vị trí của đối số phải được khớp. Nếu chúng ta thay đổi thứ tự, thì kết quả có thể thay đổi. Ngoài ra, nếu chúng tôi thay đổi số lượng đối số, chúng tôi sẽ gặp lỗi
Những điểm quan trọng cần nhớ về đối số chức năng
Điểm 1. Các đối số mặc định phải tuân theo các đối số không mặc định
Thí dụ
341
Điểm. Đối số mặc định phải tuân theo đối số mặc định trong định nghĩa hàm
Đối số mặc định phải tuân theo đối số mặc định. Ví dụ: Khi bạn sử dụng đối số mặc định trong một định nghĩa, tất cả các đối số ở bên phải của chúng cũng phải có giá trị mặc định. Nếu không, bạn sẽ gặp lỗi
Thí dụ
342
điểm 2. đối số từ khóa chỉ nên theo đối số vị trí
chúng ta có thể trộn các đối số vị trí với các đối số từ khóa trong khi gọi hàm. Tuy nhiên, đối số từ khóa phải luôn ở sau đối số không phải từ khóa [đối số vị trí]. Nếu không, bạn sẽ gặp lỗi
I. e. , tránh sử dụng đối số từ khóa trước đối số vị trí
Thí dụ
343
Điểm 3. Thứ tự của các đối số từ khóa không quan trọng, nhưng 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 hàm chấp nhận
Thí dụ
344
Điểm 4. Không có đối số sẽ nhận được một giá trị nhiều hơn một lần
345
Đối số có độ dài thay đổi
Trong Python đôi khi có trường hợp chúng ta cần truyền nhiều đối số cho hàm. Các loại đối số như vậy được gọi là đối số tùy ý hoặc đối số có độ dài thay đổi
Chúng tôi sử dụng các đối số có độ dài thay đổi nếu chúng tôi không biết trước số lượng đối số cần thiết cho hàm
Các loại đối số tùy ý
- đối số vị trí tùy ý [
3
97] - đối số từ khóa tùy ý [
3
98]
*args và **kwargs cho phép bạn chuyển nhiều đối số vị trí hoặc đối số từ khóa cho một hàm
Đối số vị trí tùy ý [3
97]
Chúng ta có thể khai báo một đối số có độ dài thay đổi bằng ký hiệu
390 [dấu hoa thị]. Đặt dấu hoa thị [
390] trước một tham số trong định nghĩa hàm để xác định một đối số vị trí tùy ý
chúng ta có thể truyền nhiều đối số cho hàm. Bên trong, tất cả các giá trị này được biểu diễn dưới dạng một bộ. Hãy hiểu việc sử dụng các đối số có độ dài thay đổi bằng một ví dụ
Đây là một hàm đơn giản nhận ba đối số và trả về giá trị trung bình của chúng
346
Chức năng này hoạt động, nhưng nó chỉ giới hạn ở ba đối số. Điều gì sẽ xảy ra nếu bạn cần tính điểm trung bình của hơn ba môn học hoặc số lượng môn học chỉ được xác định trong thời gian chạy?
Thí dụ
347
đầu ra
348
Ghi chú. args chỉ là một cái tên. Bạn có thể chọn bất kỳ tên nào bạn thích, chẳng hạn như *chủ đề
349
Đối số từ khóa tùy ý [**kwargs]
Chúng tôi đã thấy cách sử dụng
397. Bây giờ hãy xem cách sử dụng đối số
398. **kwargs cho phép bạn truyền nhiều đối số từ khóa cho một hàm. Sử dụng
398 nếu bạn muốn xử lý các đối số được đặt tên trong một hàm
Sử dụng toán tử giải nén [
395] để xác định các đối số từ khóa có độ dài thay đổi. Các đối số từ khóa được truyền tới một kwargs được truy cập bằng cặp khóa-giá trị [giống như truy cập từ điển trong Python]