Lời nói đầu - Một lưu ý về khả năng tương thích: Các câu trả lời khác chỉ có thể hoạt động trong Python 2 - Câu trả lời này sẽ hoạt động hoàn toàn tốt trong Python 2 và 3. Nếu chỉ viết Python 3 tương tự. Show
Vâng, nó là có thể - nhưng không được khuyến khíchTôi không đề xuất điều này. Đây là một ý tưởng tồi. Đừng làm điều đó. Đây là một vài lý do:
Vì vậy, tôi đề nghị bạn không làm điều này trừ khi bạn có một lý do thực sự tốt. Tốt hơn nhiều là xác định phương thức chính xác trong định nghĩa lớp hoặc ít nhất là tốt nhất là trực tiếp cho khỉ, như thế này:It is far better to define the correct method in the class definition or less preferably to monkey-patch the class directly, like this:
Vì nó là hướng dẫn, tuy nhiên, tôi sẽ chỉ cho bạn một số cách để làm điều này. Làm thế nào nó có thể được thực hiệnĐây là một số mã thiết lập. Chúng ta cần một định nghĩa lớp. Nó có thể được nhập khẩu, nhưng nó thực sự không quan trọng.
Tạo một thể hiện:
Tạo một phương thức để thêm vào nó:
Phương thức Naught (0) - Sử dụng phương thức mô tả, class Foo(object): '''An empty class to demonstrate adding a method to an instance''' 6Tra cứu chấm trên các hàm gọi phương thức 6 của hàm với thể hiện, liên kết đối tượng với phương thức và do đó tạo ra "phương thức ràng buộc".
và bây giờ:
Phương thức một - type.methodtypeĐầu tiên, nhập các loại, từ đó chúng tôi sẽ có hàm tạo phương thức:
Bây giờ chúng tôi thêm phương thức vào thể hiện. Để làm điều này, chúng tôi yêu cầu hàm tạo Phương thức từ mô -đun 8 (mà chúng tôi đã nhập ở trên).Chữ ký đối số cho các loại.MethodType (trong Python 3) là 9:
và cách sử dụng:
Về mặt cha mẹ, trong Python 2 Chữ ký là 0:
Phương pháp hai: Binding từ vựngĐầu tiên, chúng tôi tạo một hàm trình bao bọc liên kết phương thức với thể hiện: 0usage: 1Phương pháp ba: functools.partialHàm một phần áp dụng (các) đối số đầu tiên cho một hàm (và các đối số từ khóa tùy chọn) và sau đó có thể được gọi với các đối số còn lại (và ghi đè các đối số từ khóa). Do đó: 2Điều này có ý nghĩa khi bạn xem xét rằng các phương thức ràng buộc là các chức năng một phần của thể hiện. Hàm không bị ràng buộc như một thuộc tính đối tượng - tại sao điều này không hoạt động:Nếu chúng ta cố gắng thêm sample_method theo cách tương tự như chúng ta có thể thêm nó vào lớp, thì nó không bị ràng buộc trong ví dụ và không coi bản thân ngầm là đối số đầu tiên. 3Chúng ta có thể làm cho chức năng không liên kết hoạt động bằng cách vượt qua rõ ràng (hoặc bất cứ điều gì, vì phương pháp này không thực sự sử dụng biến đối số 1), nhưng nó sẽ không phù hợp với chữ ký dự kiến của các trường hợp khác (nếu chúng ta vá trường hợp này): 4Sự kết luậnBây giờ bạn đã biết một số cách bạn có thể làm điều này, nhưng trong tất cả sự nghiêm túc - đừng làm điều này. Phương thức __ Thêm __ trong Python là gì?Phương thức Python __add __ () thêm hai đối tượng và trả về một đối tượng mới làm đối tượng kết quả trong Python. Ví dụ dưới đây trả về một đối tượng mới, Python3.adds two objects and returns a new object as a resultant object in Python. The below example returns a new object, Python3.
Phương thức __ init __ trong lớp Python là gì?Phương pháp __init__ là tương đương Python của hàm tạo C ++ theo cách tiếp cận hướng đối tượng.Hàm __init__ được gọi mỗi khi một đối tượng được tạo từ một lớp.Phương thức __init__ cho phép lớp khởi tạo các thuộc tính của đối tượng và không phục vụ mục đích nào khác.Nó chỉ được sử dụng trong các lớp học.the Python equivalent of the C++ constructor in an object-oriented approach. The __init__ function is called every time an object is created from a class. The __init__ method lets the class initialize the object's attributes and serves no other purpose. It is only used within classes.
__ str __ trong Python là gì?Python __str __ () Phương thức này trả về biểu diễn chuỗi của đối tượng.Phương thức này được gọi là hàm in () hoặc str () được gọi trên một đối tượng.Phương thức này phải trả về đối tượng chuỗi.This method returns the string representation of the object. This method is called when print() or str() function is invoked on an object. This method must return the String object.
__ Lớp __ trong Python là gì?__ class__ là một thuộc tính trên đối tượng đề cập đến lớp mà từ đó đối tượng được tạo.một.__Class__ # Đầu ra: b.__Class__ # Đầu ra: Sau các loại dữ liệu đơn giản, giờ đây chúng ta hãy hiểu chức năng loại và __Class__ với sự trợ giúp của lớp do người dùng xác định, con người.an attribute on the object that refers to the class from which the object was created. a. __class__ # Output: |