Bài 47. HÀM TRONG PYTHON P5 (PACKING AND UNPACKING ARGUMENT P2)

I. Unpacking Argument using **

Trong bài học trước, chúng ta đã biết * được dùng để unpacking các kiểu dữ liệu List, Tuple, Chuỗi, Generator, Set, Dict (chỉ lấy được key).
Bây giờ ta sẽ thực hành ví dụ với 1 Dict, sử dụng * và **

Ví dụ 1 (sử dụng * với dict):
Các câu lệnh:

# Khởi tạo 1 dict
dict1 = {“we”:1, “love”:2, “python”:3}
# Khởi tạo 1 hàm
def quote(a,b,c):
    print(a)
    print(b)
    print(c)
#Truyền các phần tử trong dict 1 lần lượt vào hàm quote sử dụng *
quote(*dict1)
 

Kết quả trả ra:
we
love
python

Ví dụ 2 (sử dụng ** với dict):
Các câu lệnh:

# Khởi tạo 1 dict
dict2 = {“we”:1, “love”:2, “python”:3}
# Khởi tạo 1 hàm, trong đó tham số parameter phải trùng với key trong dict 1
def quote(we,love,python):
    print(we)
    print(love)
    print(python)
#Truyền các phần tử trong dict 2 lần lượt vào hàm quote sử dụng **
quote(**dict2)

 

Kết quả trả ra:
1
2
3

II. Packing Argument using **

Tương tự Unpacking Argument sử dụng ** thì Packing Argument sử dụng ** cũng được dùng cho Dict. Cụ thể, packing argument sẽ gói các Keyword Argument.

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

# Khởi tạo 1 hàm, ta dùng kwargs là viết tắt của keyword arguments
def quote(**kwargs):
    print(kwargs)
    print(type(kwargs))
#Truyền vào hàm quote 1 dict
quote(we=1;love=2;python=”three”)

 

Kết quả trả ra:
{‘we’: 1, ‘love’: 2, ‘python’: ‘three’}
<class ‘dict’>

Ví dụ 4 (nếu ta sử dụng ** với positional argument chứ không phải keyword argument):
Các câu lệnh:

# Khởi tạo 1 hàm, ta dùng kwargs là viết tắt của keyword arguments
def quote(**kwargs):
    print(kwargs)
    print(type(kwargs))
#Truyền vào hàm quote các positional argument
quote(**x,y)
 

Kết quả trả ra:
 quote(**x,y)
^
SyntaxError: positional argument follows keyword argument unpacking

Nếu trong bài trên ta truyền trực tiếp vào tham số y đối số là 10 thì sẽ báo lỗi. Bắt buộc phải truyền keyword argument.

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 *