Trong ví dụ có hai lớp Person và MyClass, đối tượng của lớp Person được truyền dưới dạng tham số cho phương thức của lớp MyClass Show
class MyClass(): def my_method(self, obj): print('In my_method method of MyClass') print("Name:", obj.name) print("Age:", obj.age)Trong MyClass có một phương thức my_method lấy thêm một đối số ngoài self. from MyClass import MyClass class Person: def __init__(self, name, age): print('init called') self.name = name self.age = age def display(self): print('in display') print("Name-", self.name) print("Age-", self.age) # object of class MyClass obj = MyClass() # passing person object to # method of MyClass (self = person here) obj.my_method(self) person = Person('John', 40) person.display()Trong lớp Người, MyClass cũng được sử dụng để được nhập. from MyClass import MyClassTrong đối tượng phương thức display() của MyClass được tạo. obj = MyClass()Sau đó, phương thức my_method() của lớp MyClass được gọi và đối tượng của lớp Person được truyền dưới dạng tham số. # passing person object to # method of MyClass (self = person here) obj.my_method(self)Khi thực hiện chương trình Python này, bạn nhận được kết quả như sau. init called in display Name- John Age- 40 In my_method method of MyClass Name: John Age: 40 Khuyến nghị cho việc học (Các khóa học của Udemy)
Đó là tất cả cho chủ đề này Truyền đối tượng của lớp làm tham số trong Python. Nếu bạn có bất kỳ nghi ngờ hoặc bất kỳ đề xuất nào để thực hiện, vui lòng gửi bình luận. Thanks Các đối tượng là các thể hiện của lớp trong python có các trường và phương thức tôi. e. , giá trị và các chức năng liên quan Python cho phép các lập trình viên của nó truyền đối tượng vào phương thức. Và cũng trả về các đối tượng từ một phương thức. Đây là một chương trình để minh họa điều này, 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 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ừ 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 ________số 8_______
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 Một đối tượng có thể được truyền dưới dạng đối số không?Để chuyển một đối tượng làm đối số, chúng ta viết tên đối tượng làm đối số trong khi gọi hàm giống như cách chúng ta thực hiện đối với các biến khác . cú pháp. tên_hàm(tên_đối_tượng); . Trong ví dụ này, có một lớp có biến số nguyên 'a' và hàm 'add' lấy một đối tượng làm đối số.
Truyền đối tượng làm đối số là gì?Các đối tượng của một lớp có thể được truyền dưới dạng đối số cho các hàm thành viên cũng như các hàm không phải thành viên theo giá trị hoặc theo tham chiếu . Khi một đối tượng được truyền theo giá trị, một bản sao của đối tượng thực được tạo bên trong hàm. Bản sao này bị hủy khi chức năng kết thúc.
Các đối tượng được truyền trong Python như thế nào?Python sử dụng một hệ thống, được gọi là “ Gọi theo tham chiếu đối tượng ” hoặc “Gọi theo chỉ định”. Trong trường hợp bạn truyền các đối số như số nguyên, chuỗi hoặc bộ cho một hàm, thì việc truyền giống như gọi theo giá trị vì bạn không thể thay đổi giá trị của các đối tượng bất biến được truyền cho hàm. |