Hướng dẫn dùng python unpacking python
Chúng ta sử dụng hai toán tử * (với tuple) và ** (với dictionary).
1. Tình huốngXem xét một tình huống trong đó chúng ta có một hàm nhận bốn đối số. Chúng ta muốn thực hiện gọi hàm này và chúng ta có một list của size 4 có tất cả các đối số cho hàm. Nếu chúng ta chỉ đơn giản truyền list tới hàm, cuộc gọi sẽ không hoạt động.
Kết quả:
Giải nén Chúng ta có thể sử dụng toán tử * để giải nén list để tất cả các phần tử của nó có thể được truyền qua dưới dạng các tham số khác nhau.
Kết quả:
Một ví dụ khác, hãy xem xét hàm tích hợp range()cần các đối số bắt đầu và kết thúc riêng biệt. Nếu chúng không khả dụng một cách riêng biệt, hãy viết lệnh gọi hàm với *-operator để giải nén các đối số ra khỏi list hoặc tuple:
Đóng gói Khi chúng ta không biết có bao nhiêu đối số cần được truyền tới một hàm trong python, chúng ta có thể sử dụng Packing để đóng gói tất cả các đối số trong một tuple.
Kết quả:
Hàm mySum() trên đã đóng gói tất cả các đối số mà cuộc gọi phương thức này nhận được vào một biến đơn. Khi chúng ta có biến ‘đóng gói’ này, chúng ta có thể thực hiện mọi thứ với nó mà chúng ta có thể làm với một tuple bình thường. args[0] và args[1] lần lượt sẽ cung cấp cho bạn đối số thứ nhất và thứ hai. Vì các tuple của chúng ta là bất biến, bạn có thể truyền đổi args tuple thành một list để bạn cũng có thể sửa đổi, xóa và sắp xếp lại các mục trong đó. Dưới đây là một ví dụ cho thấy cả tính đóng gói và giải nén.
Kết quả:
sử dụng dictionary
Kết quả
Ở đây ** đã giải nén từ điển được sử dụng cùng nó và truyền các mục trong từ điển dưới dạng đối số từ khóa cho hàm. Vì vậy, việc viết “fun(1, **d)” tương đương với việc viết “fun(1, b=4, c=10)”
Kết quả:
3. Các ứng dụng và các điểm quan trọng1. Được sử dụng trong lập trình ổ cắm để gửi một số lượng lớn yêu cầu đến máy chủ. 2. Được sử dụng trong khung Django để gửi các đối số biến để xem các hàm. 3. Có các hàm bao bọc yêu cầu chúng ta truyền vào các đối số biến. 4. Sửa đổi các đối số trở nên dễ dàng, nhưng đồng thời xác nhận là không phù hợp, vì vậy chúng phải được sử dụng cẩn thận. Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng! Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you! |