Làm thế nào để bạn chuyển một đối số cho một chức năng khác trong python?
Trong bài viết này, chúng ta sẽ tìm hiểu cách truyền một phương thức làm đối số trong Python. Chúng ta sẽ thảo luận về phương pháp khác nhau của việc chuyển các phương thức và hàm làm đối số bằng cách sử dụng mã tùy chỉnh Show Trong Python, mọi thứ như đối tượng, biến, v.v. được coi là một đối tượng. Do đó, các chức năng/phương thức, cũng được coi là đối tượng. Trong bài viết này, chúng tôi sẽ dính vào các phương pháp. Một phương thức có thể nhận nhiều đối số, như đối tượng, biến (cùng hoặc khác loại dữ liệu) và thậm chí cả các phương thức khác vì phương thức python là đối tượng hạng nhất. Các phương thức là các đối tượng có thể gọi được để bạn có thể chuyển chúng, lưu trữ chúng và có thể làm bất cứ điều gì bạn muốn. Phương thức Ghi chúTrong bài viết này, chúng ta sẽ sử dụng các phương thức trong các ví dụ sau, nhưng lưu ý rằng mọi thứ bên dưới đều áp dụng giống hệt nhau cho các hàm (ngoại trừ việc không có tham số Thí dụ. Phương thức lớp được truyền dưới dạng đối sốCác phương thức được truyền dưới dạng đối số giống như một biến. Trong ví dụ này, chúng ta định nghĩa một lớp và các đối tượng của nó. Chúng ta tạo một đối tượng để gọi các phương thức của lớp. Bây giờ, để gọi một phương thức hoặc hàm đã truyền, bạn chỉ cần sử dụng tên mà nó được liên kết giống như cách bạn sẽ sử dụng tên thông thường của phương thức (hoặc hàm)
Thí dụ. Hàm bậc cao hơn được truyền dưới dạng đối sốGiống như các phương thức lớp được gọi bằng cách sử dụng các đối tượng lớp và được truyền dưới dạng đối số, một hàm chung do người dùng định nghĩa cũng có thể được truyền dưới dạng đối số cho hàm khác vì hàm là đối tượng. Các hàm có thể nhận một hàm khác làm đối số được gọi là hàm bậc cao. Trong ví dụ bên dưới, một hàm func1 được tạo để nhận một hàm làm đối số
Thí dụ. Hàm bao bọc được truyền dưới dạng đối sốTrong Python, các hàm Wrapper hoặc trình trang trí bọc một hàm khác để mở rộng hành vi của hàm được bao bọc mà không sửa đổi vĩnh viễn nó. Trong Decorators, các hàm được truyền dưới dạng đối số cho một hàm khác và sau đó chúng được gọi bên trong hàm bao bọc Ví dụ dưới đây định nghĩa một trình trang trí đơn giản hello_decorator. inner1 là một hàm Wrapper trong đó đối số được gọi. Hàm bên trong có thể truy cập các hàm cục bộ bên ngoài như trong trường hợp này là func(). func() được gọi bên trong hàm bao bọc
Thí dụ. Lambda Được chuyển làm đối số cho map()Ví dụ quan trọng nhất về truyền phương thức làm đối số là lambda. Bạn thường sử dụng Python triển khai hàm map() trong đó tham số đầu tiên là một hàm và tham số thứ hai có thể lặp lại. Trong ví dụ này, lệnh gọi hàm chuyển hàm sqr(x) làm đối số hàm bằng cách sử dụng phương thức bản đồ. Một cách khác để sử dụng phương thức map() là chuyển lambda làm đối số với iterable
Phần kết luậnTrong bài viết này, chúng ta đã học cách truyền một phương thức và hàm làm đối số cho một hàm khác. Mỗi ví dụ đều có phương pháp riêng. Biểu thức lambda làm đối số cho phương thức map() là ví dụ tốt nhất để hiểu bài viết này vì bạn đã sử dụng chúng cùng nhau nhiều lần. Hãy thử chuyển các hàm khác nhau làm đối số cho các hàm khác và quan sát hành vi |