Đối số Python
Nếu bạn không biết có bao nhiêu đối số sẽ được truyền vào hàm của mình, hãy thêm ____16_______ trước tên tham số trong định nghĩa hàm Show Bằng cách này, hàm sẽ nhận được một bộ đối số và có thể truy cập các mục tương ứng Ví dụNếu số lượng đối số không xác định, hãy thêm ____16_______ trước tên tham số def my_function(*kids) my_function("Emil", "Tobias", "Linus") Tự mình thử »Đối số tùy ý thường được rút ngắn thành *args trong tài liệu Python Hàm là các khối xây dựng trong Python. Họ lấy 0 hoặc nhiều đối số và trả về một giá trị. Python khá linh hoạt về cách các đối số được truyền cho một hàm. *args và **kwargs giúp xử lý các đối số dễ dàng và rõ ràng hơn Các phần quan trọng là “*” và “**”. Bạn có thể sử dụng bất kỳ từ nào thay cho args và kwargs nhưng thông thường người ta thường sử dụng các từ args và kwargs. Vì vậy, không cần những cuộc phiêu lưu không cần thiết Trong bài đăng này, chúng ta sẽ xem qua 10 ví dụ mà tôi nghĩ sẽ làm cho khái niệm về *args và **kwargs trở nên rõ ràng ví dụ 1Xét hàm tính tổng hai số sau def addition(a, b): Hàm này tổng chỉ có hai số. Điều gì sẽ xảy ra nếu chúng ta muốn một hàm tính tổng ba hoặc bốn số? Trong những trường hợp như vậy, chúng ta có thể sử dụng *args làm tham số
def addition(*args): Các tham số được truyền cho hàm cộng được lưu trữ trong một bộ dữ liệu. Do đó, chúng ta có thể lặp qua biến args print(addition()) ví dụ 2Trước ví dụ thứ hai, tốt hơn là giải thích sự khác biệt giữa đối số vị trí và đối số từ khóa
Khi một hàm được gọi, các giá trị cho các đối số vị trí phải được cung cấp. Nếu không, chúng tôi sẽ nhận được một lỗi Nếu chúng ta không chỉ định giá trị cho đối số từ khóa, nó sẽ nhận giá trị mặc định def addition(a, b=2): #a is positional, b is keyword argument Bây giờ chúng ta có thể làm ví dụ thứ hai. Có thể sử dụng *args và các biến được đặt tên cùng nhau. Hàm sau in các đối số đã truyền tương ứng def arg_printer(a, b, *args): Hai giá trị đầu tiên được trao cho a và b. Các giá trị còn lại được lưu trữ trong bộ args ví dụ 3Python muốn chúng ta đặt đối số từ khóa sau đối số vị trí. Chúng ta cần ghi nhớ điều đó khi gọi một hàm Xem xét ví dụ sau arg_printer(a=4, 2, 4, 5)SyntaxError: positional argument follows keyword argument Nếu chúng ta gán một giá trị cho một đối số vị trí, nó sẽ trở thành một đối số từ khóa. Vì nó được theo sau bởi các đối số vị trí, nên chúng tôi nhận được Lỗi cú pháp Ví dụ 4Trong hàm sau, tùy chọn là một đối số từ khóa (nó có giá trị mặc định) def addition(a, b, *args, option=True): Hàm này thực hiện thao tác cộng nếu tùy chọn là True. Vì giá trị mặc định là True, nên hàm trả về tổng của các đối số trừ khi tham số tùy chọn được khai báo là Sai print(addition(1,4,5,6,7)) Ví dụ 5**kwargs thu thập tất cả các đối số từ khóa không được xác định rõ ràng. Do đó, nó thực hiện thao tác tương tự như *args nhưng đối với đối số từ khóa
Theo mặc định, **kwargs là một từ điển rỗng. Mỗi đối số từ khóa không xác định được lưu trữ dưới dạng một cặp khóa-giá trị trong từ điển **kwargs ________số 8_______Ví dụ 6Chúng ta có thể sử dụng cả *args và **kwargs trong một hàm nhưng *args phải được đặt trước **kwargs def arg_printer(a, b, *args, option=True, **kwargs): Ví dụ 7Chúng ta có thể đóng gói và giải nén các biến sử dụng *args và **kwargs def addition(*args): 0Nếu chúng ta chuyển một danh sách cho hàm trên, nó sẽ được lưu trữ trong args tuple dưới dạng một phần tử duy nhất def addition(*args): 1Nếu chúng ta đặt dấu hoa thị trước lst, các giá trị trong danh sách sẽ được giải nén và lưu trữ riêng trong bộ args def addition(*args): 2Ví dụ 8Chúng ta có thể vượt qua nhiều lần lặp để được giải nén cùng với các phần tử đơn lẻ. Tất cả các giá trị sẽ được lưu trữ trong bộ args def addition(*args): 3Ví dụ 9Chúng tôi cũng có thể thực hiện việc đóng gói và giải nén với các đối số từ khóa def addition(*args): 4Nhưng có thể lặp lại được truyền dưới dạng đối số từ khóa phải là ánh xạ, chẳng hạn như từ điển def addition(*args): 5Ví dụ 10Nếu chúng ta cũng chuyển các đối số từ khóa bổ sung cùng với một từ điển, chúng sẽ được kết hợp và lưu trữ trong từ điển kwargs Đối số trong Python là gì?*args cho phép chúng tôi chuyển một số lượng biến đối số không phải từ khóa cho hàm Python . Trong hàm, chúng ta nên sử dụng dấu hoa thị ( * ) trước tên tham số để truyền số lượng đối số thay đổi.
3 loại đối số trong Python là gì?Do đó, chúng tôi kết luận rằng Đối số hàm Python và ba loại đối số hàm của nó. Đây là- các đối số mặc định, từ khóa và tùy ý .
args có phải là danh sách Python không?*args là một chuỗi không giới hạn, có nghĩa là số lượng đối số vị trí không xác định. Danh sách là một đối số vị trí duy nhất . Chúng tôi không cần sử dụng splat nếu chúng tôi đang viết chức năng của mình để lấy danh sách. Có dấu sao trong định nghĩa hàm cho phép bất kỳ số lượng đối số nào.
Là args một tuple hoặc danh sách?args là một dạng đối số ngắn . Với việc sử dụng *args, python lấy bất kỳ số lượng đối số nào trong hàm do người dùng xác định và chuyển đổi đầu vào của người dùng thành một bộ có tên args. Nói cách khác, *args có nghĩa là không hoặc nhiều đối số được lưu trữ trong một bộ tên là args. |