Giải nén các đối số chức năng trong Python
Trong các hàm python, chúng ta có thể đóng gói hoặc giải nén các đối số của hàm.
giải nén. Trong khi gọi hàm, chúng ta có thể giải nén python list/tuple/range/dict và chuyển nó thành các đối số riêng biệt. * được sử dụng để giải nén các đối số vị trí. ** được sử dụng để giải nén các đối số từ khóa
Đóng gói. Bạn có thể đã thấy *args và **kwargs trong định nghĩa hàm python. Điều đó nghĩa là gì? . Nếu không biết số lượng đối số được truyền trong khi gọi hàm, chúng ta có thể sử dụng phương pháp đóng gói. , which packs all the arguments in a tuple. If we don’t know the number of arguments to be passed during the function call, we can use packing.
Hãy cùng tìm hiểu chi tiết về đóng gói và giải nén đối số hàm trong bài viết này.
Tóm tắt định nghĩa hàm.
Chỉ cần một bản tóm tắt nhỏ về định nghĩa chức năng. Trong khi định nghĩa một hàm, chúng ta sẽ chỉ định các tham số hình thức và trong khi gọi hàm, chúng ta sẽ chỉ định các tham số thực tế.
Chúng ta có thể sử dụng các đối số tùy ý trong khi gọi hàm hoặc trong khi định nghĩa hàm. Đối số tùy ý có thể là đối số vị trí hoặc từ khóa.
Bốn cách giải nén/đóng gói đối số chức năng.
Giải nén các đối số vị trí
Đóng gói đối số vị trí
Giải nén các đối số từ khóa
Đóng gói đối số từ khóa
Giải nén các đối số vị trí
Khi các đối số ở dạng chuỗi như list/tuple/range, chúng ta có thể giải nén chúng trong khi gọi hàm bằng toán tử * .
Dấu hoa thị * được sử dụng để giải nén các đối số vị trí trong khi gọi hàm.
đối số vị trí. Đối số vị trí có nghĩa là các giá trị được truyền qua lệnh gọi hàm phải theo cùng thứ tự được đề cập trong định nghĩa hàm.
ví dụ 1. Giải nén các đối số vị trí trong khi gọi hàm.
mul[*num ]→ Nó sẽ giải nén các phần tử trong danh sách và sẽ gán chúng cho các tham số được đề cập trong định nghĩa hàm theo cùng một thứ tự.
1 → một
2 →b
3 →c
ví dụ 2. Kiểm tra cách giải nén được thực hiện.
ví dụ 3. TypeError tăng lên khi số lượng tham số không khớp
Sau khi giải nén các đối số trong khi gọi hàm, nếu số lượng đối số không khớp với các tham số trong định nghĩa hàm thì nó sẽ báo lỗi.
Ví dụ 4. Nếu chúng ta chỉ đề cập đến tên danh sách trong khi gọi hàm, nó sẽ phát sinh lỗi.
Ở đây, trong ví dụ này, toàn bộ danh sách → màu được gán cho tham số a. Nếu chúng ta chỉ đề cập đến tên danh sách trong khi gọi hàm, nó sẽ không giải nén và gán các phần tử danh sách cho các tham số.
Đóng gói đối số vị trí
Đôi khi trong khi gọi hàm, chúng ta có thể sử dụng một số đối số tùy ý. Vì chúng tôi không biết số lượng đối số sẽ được truyền trong khi gọi hàm, chúng tôi có thể sử dụng đóng gói để đóng gói tất cả các đối số trong một bộ dữ liệu.
ví dụ 1. Truyền số lượng đối số tùy ý trong khi gọi hàm.
Có thể sử dụng cùng một hàm cho số s tham số khác nhau.
ví dụ 2. Trước số lượng đối số thay đổi, không hoặc nhiều đối số bình thường có thể xảy ra.
ví dụ 3. Lỗi xuất hiện khi các tham số bình thường xuất hiện sau số lượng đối số thay đổi.
Các đối số bình thường không được xuất hiện sau số lượng đối số thay đổi. Chỉ các đối số từ khóa mới xuất hiện sau số lượng đối số thay đổi.
Giải nén các đối số từ khóa
Khi các đối số ở dạng từ điển, chúng ta có thể giải nén chúng trong khi gọi hàm bằng toán tử ** .
Dấu hoa thị kép ** được sử dụng để giải nén từ điển và chuyển ing từ đó làm đối số từ khóa trong khi gọi hàm.
Đối số từ khóa. đối số từ khóa có dạng kwargs=value
ví dụ 1. Giải nén từ điển trong khi gọi hàm.
mul[**d ]→ Nó sẽ giải nén các phần tử trong từ điển và chuyển nó dưới dạng đối số từ khóa trong khi gọi hàm.
a=4
b=5
c=7
Đóng gói đối số từ khóa
Đôi khi trong khi gọi hàm, chúng ta có thể sử dụng một số đối số từ khóa tùy ý. Vì chúng tôi không biết số lượng đối số từ khóa sẽ được chuyển trong khi gọi hàm, chúng tôi có thể sử dụng đóng gói để đóng gói tất cả các đối số từ khóa trong từ điển.
ví dụ 1. Truyền một số đối số từ khóa tùy ý trong khi gọi hàm.
Có thể sử dụng cùng một hàm cho số s tham số khác nhau.
Phần kết luận.
Đối số chức năng giải nén được sử dụng khi chúng tôi muốn giải nén list/tuple/dict trong khi gọi hàm.
Đối số của hàm đóng gói được sử dụng khi chúng ta không đếm được số lượng tham số được truyền trong khi gọi hàm. Có thể sử dụng cùng một chức năng cho số lượng tham số khác nhau.