Các loại đối số Python

Các đối số được chỉ định sau tên hàm, bên trong dấu ngoặc đơn. Bạn có thể thêm bao nhiêu đối số tùy thích, chỉ cần phân tách chúng bằng dấu phẩy

Ví dụ sau có một hàm với một đối số [fname]. Khi hàm được gọi, chúng ta truyền vào tên đầu tiên, tên này được sử dụng bên trong hàm để in ra tên đầy đủ

Thí dụ

def my_function[fname]
in[fname + " Refsnes"]

my_function["Emil"]
my_function["Tobias"]
my_function["Linus"]

Tự mình thử »

Các đối số thường được rút ngắn thành args trong tài liệu Python

Tham số hoặc Đối số?

Tham số thuật ngữ và đối số có thể được sử dụng cho cùng một thứ. thông tin được truyền vào một chức năng

Từ quan điểm của một chức năng

Tham số là biến được liệt kê bên trong dấu ngoặc đơn trong định nghĩa hàm

Đối số là giá trị được gửi đến hàm khi nó được gọi

Số đối số

Theo mặc định, một hàm phải được gọi với số đối số chính xác. Có nghĩa là nếu hàm của bạn yêu cầu 2 đối số, bạn phải gọi hàm với 2 đối số, không nhiều hơn và không ít hơn

Đối số là giá trị được gửi đến hàm khi nó được gọi trong Python. Các đối số thường bị nhầm lẫn với các tham số và sự khác biệt chính giữa cả hai là tham số là một biến bên trong dấu ngoặc đơn của hàm. Ngược lại, một đối số là một giá trị được truyền cho nó

Phạm vi

  • Trong bài viết này, chúng ta sẽ tìm hiểu về đối số hàm trong Python
  • Sau đó, chúng ta sẽ xem xét các loại đối số khác nhau mà chúng ta có thể sử dụng với các hàm và cố gắng hiểu tất cả chúng với sự trợ giúp của các ví dụ và giải thích phù hợp

Đối số chức năng trong Python là gì?

Dưới đây là một hàm cơ bản nhận hai số đầu vào và trả về tổng của chúng dưới dạng đầu ra

def add_two_num[num1, num2]:
    sum = num1 + num2
    return sum
 
sum = add_two_num[5, 6]  # num1 = 5, num2 = 6
print[sum]

đầu ra

Trong khối mã đã cho ở trên, điều đầu tiên chúng tôi làm là xác định chính chức năng đó. Từ khóa def biểu thị phần đầu của khai báo hàm, theo sau là tên của hàm [ở đây, add_two_nums]. Trong dấu ngoặc đơn sau tên hàm, chúng tôi đã chỉ định hai tham số hàm— num1 và num2. Hàm cộng num1 và num2, lưu trữ kết quả trong một biến tổng, sau đó trả về tổng dưới dạng đầu ra. Sau đó, ở dòng 5, chúng ta gọi hàm trong mã của mình với num1 = 5 và num2 = 6 làm đối số của hàm

Dựa trên ví dụ, chúng ta có thể định nghĩa các tham số hàm và đối số hàm như sau

Tham số là các biến mà chúng ta chỉ định bên trong dấu ngoặc đơn tại thời điểm xác định hàm. Trong ví dụ, num1 và num2 là các tham số của hàm

Mặt khác, các đối số là các giá trị được truyền cho các tham số này khi gọi hàm. Các đối số cho phép chúng ta truyền thông tin cho hàm. Trong ví dụ trên, chúng tôi đã cung cấp 5 và 6 làm đối số hàm cho các tham số num1 và num2 tương ứng

Có bốn loại đối số chức năng vốn có trong Python, sử dụng chúng, chúng ta có thể gọi các hàm để thực hiện các tác vụ mong muốn của chúng. Đây là như sau

  1. Đối số mặc định của Python
  2. Đối số từ khóa Python
  3. Đối số tùy ý của Python
  4. Đối số bắt buộc của Python Bây giờ, hãy xem xét từng loại đối số hàm khác nhau

Đối số mặc định của Python

Chúng ta hãy xem một ví dụ trong đó trước tiên chúng ta khai báo một hàm và sau đó gọi hàm đó sau trong mã. Tuy nhiên, trong ví dụ này, giả sử rằng chúng ta đã quên truyền đối số tại thời điểm gọi hàm. Mã trông giống như thế này

def add_two[a, b]:
    sum = a + b
    print[sum] 
 
add_two[3]

Khi chạy, khối mã trên sẽ đưa ra lỗi sau

TypeError: add_two[] missing 1 required positional argument: 'b'
    add_two[3]
Line 5 in  [Solution.py]

Lỗi cho biết rằng chúng tôi đã không cung cấp giá trị đối số cho các tham số a và b. Nó giải thích tầm quan trọng của việc cung cấp các giá trị đối số cho một hàm và cũng là một lỗi phổ biến thường xảy ra khi lập trình. Bây giờ, câu hỏi đặt ra là, làm thế nào chính xác chúng ta có thể xử lý việc này và tạo một phương thức dự phòng an toàn để ngay cả khi chúng ta quên truyền vào các đối số, hàm sẽ tự động nhận một số giá trị mặc định thay cho các đối số bị thiếu?

Đối số hàm mặc định trong python, như tên gợi ý, là một số giá trị đối số mặc định mà chúng tôi cung cấp cho hàm tại thời điểm khai báo hàm

Do đó, khi gọi hàm, nếu lập trình viên không cung cấp giá trị cho tham số mà chúng ta đã chỉ định đối số mặc định, thì hàm sẽ lấy giá trị mặc định làm đối số trong trường hợp đó. Do đó, việc gọi hàm sẽ không gây ra bất kỳ lỗi nào ngay cả khi chúng ta không cung cấp bất kỳ giá trị nào làm đối số cho tham số với đối số mặc định

Chúng tôi khai báo một đối số mặc định bằng cách sử dụng toán tử bằng [=] tại thời điểm khai báo hàm

Chúng ta hãy xem một ví dụ khác

def print_details[name="Elon Musk", age=50]:
    print[f"{name} is {age} years old."]
 
print_details["Jeff Bezos", 57]  # Output: Jeff Bezos is 57 years old.
print_details[]  # Line 4- Output: Elon Musk is 50 years old.

Jeff Bezos is 57 years old.
Elon Musk is 50 years old.

Trong ví dụ nêu trên, chúng tôi đã chỉ định các giá trị “Elon Musk” và 57 làm đối số mặc định cho các tham số tên và tuổi tương ứng tại thời điểm khai báo hàm

Sau đó, trong dòng 4, chúng tôi đã gọi hàm với đầu vào do người dùng chỉ định;

Tuy nhiên, trong dòng 5, chúng tôi không cung cấp bất kỳ giá trị đối số nào. Do đó, hàm đã in một câu lệnh với các giá trị đối số mặc định

Một lợi thế của các đối số chức năng mặc định trong python là nó giúp kiểm tra lỗi "đối số vị trí bị thiếu" và giúp lập trình viên kiểm soát mã của họ nhiều hơn

Một số quy tắc mà chúng ta cần ghi nhớ liên quan đến các đối số mặc định như sau

  • Có thể có bất kỳ số lượng đối số mặc định nào trong một hàm
  • Bất cứ khi nào bạn khai báo một hàm, các đối số không mặc định được chỉ định trước các đối số mặc định. Các đối số mặc định được chỉ định ở cuối, nghĩa là bất kỳ đối số nào được chỉ định ở bên phải của đối số mặc định cũng phải là đối số mặc định. Đó là để ngăn chặn bất kỳ sự mơ hồ nào của trình thông dịch Python. Ví dụ: khối mã được cung cấp bên dưới sẽ báo lỗi nếu chúng tôi cố chạy nó

def add_two[a=2, b]:
    sum = a + b
    return sum

Sau đây là lỗi chúng tôi gặp phải sau khi chạy khối mã đã cho ở trên

SyntaxError: non-default argument follows default argument
                     ^
    def add_two[a=2, b]:
Line 1  [Solution.py]

Chúng tôi đã chỉ định đối số mặc định [a=0] trước đối số không mặc định [b]. Cách chính xác để viết chức năng này sẽ là

def add_two[b, a=2]:
    sum = a + b
    return sum

Bây giờ, chúng ta hãy xem loại đối số chức năng tiếp theo trong Python

Đối số từ khóa Python

Thuật ngữ “từ khóa” khá dễ hiểu. Nó có thể được chia thành hai phần— một chìa khóa và một từ [tôi. e. , một giá trị] được liên kết với khóa đó

Để hiểu đối số từ khóa trong Python, trước tiên chúng ta hãy xem ví dụ dưới đây

________số 8_______

đầu ra

Trong ví dụ trên, tại thời điểm gọi hàm, chúng ta đã cung cấp đối số 12 và 3 cho hàm. Như vậy, hàm đã tự động gán giá trị đối số 12 cho tham số a và 3 cho tham số b, theo thứ tự/vị trí mà chúng ta đã chỉ định các đối số trong. Do đó, 12 và 3 ở đây được gọi là đối số vị trí

Nhưng điều này đưa chúng ta đến một câu hỏi quan trọng. Điều gì sẽ xảy ra nếu chúng ta muốn trình thông dịch giả sử các giá trị đối số là a=3 và b=12 trong ví dụ nêu trên?

Ở đây có khái niệm về đối số từ khóa. Trong trường hợp đối số từ khóa, lập trình viên tự gán các giá trị đối số cho lời gọi hàm

Ví dụ sau đây cho thấy việc sử dụng các đối số từ khóa trong python cho hàm 'divide_two' được xác định ở trên

# both keyword arguments
res = divide_two[a=3, b=12]  
print[res]  # Output: 0.25
 
# one positional, one keyword argument
res2 = divide_two[36, b=12]
print[res2]  # Output: 3
 
# both keyword arguments, order changed
res3 = divide_two[b=12, a=48]
print[res3]  # Output: 4

đầu ra

Như bạn có thể nhận thấy, Python cho phép gọi một hàm bằng cách sử dụng kết hợp cả đối số vị trí và từ khóa. Mặc dù về mặt thứ tự, người ta phải nhớ rằng các đối số từ khóa tuân theo các đối số vị trí. Ngoài ra, cách tốt nhất là luôn chỉ có các đối số vị trí hoặc từ khóa trong lệnh gọi hàm để duy trì tính đồng nhất và khả năng đọc mã

Sử dụng các đối số từ khóa trong python, lập trình viên có thể kiểm soát chặt chẽ hơn các đối số được truyền cho hàm. Điều đó cũng có nghĩa là thứ tự của các đối số có thể được thay đổi, điều này không xảy ra trong các đối số vị trí, trong đó thứ tự của các đối số theo thứ tự của các tham số hàm, như được chỉ định trong thời gian khai báo hàm.

Một ưu điểm khác của việc sử dụng các đối số từ khóa so với các đối số vị trí là nó làm cho mã dễ đọc và dễ hiểu hơn đối với con người, điều này rất cần thiết nếu bạn đang làm việc với một nhóm các nhà phát triển trên một cơ sở mã duy nhất.

Với điều này, chúng tôi đã đề cập đến các đối số chức năng từ khóa trong Python. Chúng ta hãy chuyển sang lớp đối số chức năng tiếp theo

Đối số tùy ý của Python

Đối số tùy ý hay còn gọi là đối số có độ dài thay đổi đóng vai trò rất quan trọng trong Python. Đôi khi, tại thời điểm khai báo hàm, lập trình viên có thể không chắc chắn về số lượng đối số được truyền cho hàm để chạy nó. Nói cách khác, số lượng đối số có thể thay đổi mỗi khi hàm được gọi. Trong những trường hợp này, chúng tôi sử dụng các đối số tùy ý trong Python

Có hai cách để truyền các đối số có độ dài thay đổi cho hàm python

Phương pháp đầu tiên là sử dụng ký hiệu dấu hoa thị [*]. Dấu hoa thị đơn được sử dụng để chuyển một số lượng đối số không có từ khóa khác nhau cho hàm. Tại thời điểm khai báo hàm, nếu chúng ta sử dụng tham số dấu hoa thị đơn [e. g. - *names], thì tất cả các đối số không phải từ khóa được truyền cho hàm tại thời điểm gọi hàm sẽ được thu thập vào một bộ duy nhất trước khi được truyền cho hàm. Chúng ta có thể hiểu điều này với sự trợ giúp của ví dụ sau

def add_two[a, b]:
    sum = a + b
    print[sum] 
 
add_two[3]
0

đầu ra

def add_two[a, b]:
    sum = a + b
    print[sum] 
 
add_two[3]
1

Bạn cũng có thể chuyển một số lượng đối số có từ khóa khác nhau cho hàm Python. Đối với điều đó, chúng tôi sử dụng toán tử dấu hoa thị kép [**]. Tại thời điểm khai báo hàm, sử dụng tham số dấu hoa thị kép [ví dụ:. - **address] dẫn đến tập hợp tất cả các đối số từ khóa trong python, được chuyển đến hàm tại thời điểm gọi hàm vào một từ điển Python trước khi được chuyển đến hàm làm đầu vào. Chúng ta có thể hiểu điều này với sự trợ giúp của ví dụ sau

def add_two[a, b]:
    sum = a + b
    print[sum] 
 
add_two[3]
2

đầu ra

def add_two[a, b]:
    sum = a + b
    print[sum] 
 
add_two[3]
3

Hàm này cũng có thể có sự kết hợp của các đối số từ khóa và không phải từ khóa tùy ý, như trong ví dụ bên dưới

def add_two[a, b]:
    sum = a + b
    print[sum] 
 
add_two[3]
4_______1_______5

Trong ví dụ hiển thị ở trên, chúng ta có thể thấy rằng tất cả các đối số hàm không có từ khóa [i. e. , “Sư tử”, “Voi”, “Sói” và “Khỉ đột”] được thu thập và lưu trữ trong các bộ động vật. Mặt khác, tất cả các đối số từ khóa đã được thu thập trong từ điển thực phẩm

Biết cách sử dụng các đối số tùy ý trong Python giờ đây cho phép chúng ta hiểu loại đối số hàm cuối cùng trong Python

Đối số bắt buộc của Python

Các đối số bắt buộc, như tên gợi ý, là những đối số bắt buộc phải được chuyển đến hàm tại thời điểm gọi hàm. Không làm như vậy sẽ dẫn đến một lỗi

Nói một cách đơn giản nhất, các đối số bắt buộc hoàn toàn ngược lại với các đối số hàm mặc định. Như chúng ta đã thấy trước đó, trong trường hợp đối số mặc định, chúng ta cung cấp giá trị mặc định cho các tham số của hàm khi khai báo hàm. Trong khi gọi hàm, nếu không có đối số nào được cung cấp cho các tham số này, thì hàm sẽ tự động nhận giá trị đối số mặc định của chúng. Do đó, trong trường hợp đối số mặc định, việc cung cấp giá trị là tùy chọn

Tuy nhiên, trong trường hợp các tham số không được cung cấp đối số mặc định, bắt buộc phải truyền đối số tại thời điểm gọi hàm. Mặt khác, trình thông dịch Python đưa ra lỗi cho biết đối số vị trí bị thiếu

Cách dễ nhất để phân biệt đối số bắt buộc với đối số mặc định là đối số bắt buộc không có giá trị mặc định

Hãy để chúng tôi cố gắng hiểu điều này với sự giúp đỡ của một ví dụ

def add_two[a, b]:
    sum = a + b
    print[sum] 
 
add_two[3]
6

đầu ra

def add_two[a, b]:
    sum = a + b
    print[sum] 
 
add_two[3]
7

Trong ví dụ trên, dòng 10 sẽ báo lỗi sau

def add_two[a, b]:
    sum = a + b
    print[sum] 
 
add_two[3]
8

Nó xảy ra vì chúng tôi không cung cấp bất kỳ giá trị nào cho đối số bắt buộc num1. Mặt khác, việc không cung cấp giá trị cho num2 trong dòng 7 sẽ không dẫn đến bất kỳ lỗi nào, vì hàm giả định giá trị mặc định cho num2

Phần kết luận

Python là ngôn ngữ lập trình cấp cao rất linh hoạt về cách lập trình viên có thể viết mã. Cách lập trình viên tận dụng các loại đối số khác nhau trong các chức năng của họ tùy thuộc vào nhu cầu và phong cách lập trình của họ. Để tóm tắt mọi thứ mà chúng ta đọc trong bài viết này

3 loại đối số trong Python là gì?

Trong Python, có 3 loại đối số khác nhau mà chúng ta có thể đưa ra cho một hàm. .
đối số vị trí. các đối số có thể được gọi theo vị trí của chúng trong định nghĩa hàm
Đối số từ khóa. đối số có thể được gọi bằng tên của họ
đối số mặc định. đối số được đưa ra giá trị mặc định

Đối số và loại của nó trong Python là gì?

5 Loại Đối số trong Định nghĩa Hàm Python. đối số mặc định . đối số từ khóa. đối số vị trí. đối số vị trí tùy ý. đối số từ khóa tùy ý.

Các đối số trong Python là gì?

Tham số cụm từ và đối số có thể được sử dụng cho cùng một nội dung. thông tin được truyền vào một chức năng. Từ quan điểm của một chức năng. Tham số là biến được liệt kê bên trong dấu ngoặc đơn trong định nghĩa hàm. Đối số là giá trị được gửi đến hàm khi nó được gọi .

Có bao nhiêu loại đối số trong các hàm Python?

bốn loại đối số hàm vốn có trong Python, bằng cách sử dụng chúng, chúng ta có thể gọi các hàm để thực hiện các tác vụ mong muốn của chúng. Đây là như sau. Đối số mặc định của Python.

Chủ Đề