クラスの 5 つのメソッドのまとめ

序文

Python のクラスのインスタンス メソッド、クラス メソッド、フリー メソッド、静的メソッド、予約メソッドの概要。

1. 方法例

インスタンス オブジェクトのメソッドは、各インスタンス オブジェクトに排他的です。
注: インスタンス メソッドは、<オブジェクト名>.<メソッド名>() の形式で使用されます。これは、<クラス名>.<メソッド名>(オブジェクト名) と同等です。

2番目に、クラスメソッド

クラス メソッド: すべてのインスタンス オブジェクトによって共有されるクラス オブジェクトのメソッド。
注: クラス メソッドは、クラス属性と他のクラス メソッドのみを操作できます。インスタンス属性やインスタンス メソッドは操作できません。<クラス名>.<メソッド名>() または <オブジェクト名>.<メソッド名>() の形式を使用します。

3. 無料の方法

フリー メソッド: クラスの名前空間で定義され、クラスの名前空間によって管理され、クラス オブジェクトに限定される通常の関数。
注: cls や self などのパラメータは必要ありません。操作できるのはクラス属性とクラスメソッドのみで、インスタンス属性とインスタンスメソッドは操作できません。<クラス名>.<フリーメソッド名>()の形式を使用します。

4. 静的メソッド

静的メソッド: クラス内で定義され、クラス オブジェクトとインスタンス オブジェクトで共有できる通常の関数。
注: パラメータは必要ありません。操作できるのはクラス属性および他のクラスメソッドのみであり、インスタンス属性およびインスタンスメソッドは操作できません。<クラス名>.<静的メソッド名>()、または<オブジェクト名>.<静的メソッド名>()の形式で使用します。

5. 保存方法

予約されたメソッド: __name__() など、二重アンダースコアで始まり、使用するために予約されています。

class Democlass:
    def __init__(self,name):
        self.name = name
        
    def getName1(self):        #实例方法
        return "类的实例方法"

    @classmethod               #类方法装饰器
    def getName2(cls):
        return "类的类方法"

    def getName3():
        return "类的自由方法"

    @staticmethod              #静态方法装饰器
    def getName4():
        return "类的静态方法"

    def __name__(self):
        return "类的保留方法"

dc1 = Democlass("老王")
print("类的实例方法:",dc1.getName1(),Democlass.getName1(dc1))
print("类的类方法:",dc1.getName2(),Democlass.getName4())
print("自由方法:",Democlass.getName3())
print("类的静态方法:",dc1.getName4(),Democlass.getName4())
print("类的保留方法:",dc1.__name__())

おすすめ

転載: blog.csdn.net/a_13572035650/article/details/128554682