Bài 45. HÀM TRONG PYTHON P3 (POSITIONAL ARGUMENT, KEYWORD ARGUMENT)

I. Positional Argument và Keyword Argument Trong Python

Trường hợp 1: Giả sử ta có 1 hàm như sau:
def greet(text1,text2):
    print(text1, text2)
Nếu ta truyền vào tham số text1, text2 lần lượt là Hello, John, ta sẽ có kết quả in ra là:
Hello John
Hello và John ở đây được gọi là Positional Argument.

Trường hợp 2: Giả sử ta có 1 hàm như sau:
def greet(a=”text1″,b =”text2″):
    print(a, b)
Nếu ta truyền vào tham số lần lượt là Hello, John, ta sẽ có kết quả in ra là:
Hello John
Hello và John ở đây được gọi là Keyword Argument.

Sau đây, chúng ta sẽ đến 1 ví dụ để tìm hiểu sự khác biệt của Positional Argument Keyword Argument

Ví dụ 1:
Các câu lệnh:

# Khởi tạo hàm 1
def greet_1(text1, text2, text3):
    print(text1, text2, text3)
# Khởi tạo hàm 2
def greet_2(a= “text1″, b=”text2″, c=”text3”):
    print(a,b,c)

#Truyền vào hàm 1 các tham số là one, two, three
greet_1(“one”,”two”,”three”)
#Truyền vào hàm 2 các tham số là one, two, three
greet_2(c=”three”,b=”two”,a=”one”)
 

Kết quả trả ra:
one two three
one two three

Đối với Positional Argument, các tham số được truyền vào sẽ gán lần lượt từ trái sang phải. Đối với Keyword Argument, do đã gán với các keyword nên ta có thể đảo thứ tự các tham số được truyền vào.
Lưu ý, positional argument luôn đứng trước keyword argument.

II. Force positional Argument và Keyword Argument Trong Python

Trong python, một số hàm bắt buộc ta phải truyền tham số (True hoặc False) vào hàm, ví dụ như hàm sorted (xem ví dụ 2)
Ngoài ra, ta có thể thay đối giá trị tham số trong hàm với một hàm chứa nhiều default argument. (xem ví dụ 3)

Ví dụ 2 :
Các câu lệnh:

# Khởi tạo hàm sắp xếp list từ lớn đến bé
def sorted_list(num1, num2, num3):
       print(sorted([num1,num2,num3], reverse = True))

# Truyền vào hàm tham số 3,6,9
sorted_list(3, 6, 9)

Kết quả trả ra:
[9, 6, 3]

Ví dụ 3 (thay đổi keyword argument) :
Các câu lệnh:

# Khởi tạo hàm tính tổng
def sum1(a, b=3, c=6, d=9):
   print(a+b+c+d)

#Truyền vào hàm sum1 tham số a = 1 và xem kết quả
sum1(1)
#truyền vào tham số a=1 và ép keyword argument d = 9 chuyển thành d = 10
sum1(1, d=10)

Kết quả trả ra:
19
20

III. Kết Luận

Như vậy, chúng tôi đã tiếp tục giới thiệu tới các bạn các khái niệm cơ bản của hàm (function) trong Python. Nếu có vấn đề nào chưa rõ, các bạn hãy liên hệ với chúng tôi để được giúp đỡ.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *