Pythonにおけるクラスメソッドと静的メソッド
1、クラス内の静的方法
クラスで静的メソッドを使用するには、静的メソッドの前に@staticmethodタグを付けて、次のメンバー関数が静的関数であることを示します.
静的メソッドを使用する利点:その関数はselfパラメータを必要とせず、クラスによってメソッドを呼び出すことができ、クラスインスタンスを定義する必要はありません(もちろんクラスインスタンスによって呼び出されても問題ありません).
2、類の方法
クラスメソッドは、クラスまたはそのインスタンスによって呼び出すことができますが、このメソッドの最初のパラメータclsは、インスタンスオブジェクトではなく、メソッドを定義するクラスオブジェクトです.
3、例
結果:
クラスで静的メソッドを使用するには、静的メソッドの前に@staticmethodタグを付けて、次のメンバー関数が静的関数であることを示します.
静的メソッドを使用する利点:その関数はselfパラメータを必要とせず、クラスによってメソッドを呼び出すことができ、クラスインスタンスを定義する必要はありません(もちろんクラスインスタンスによって呼び出されても問題ありません).
2、類の方法
クラスメソッドは、クラスまたはそのインスタンスによって呼び出すことができますが、このメソッドの最初のパラメータclsは、インスタンスオブジェクトではなく、メソッドを定義するクラスオブジェクトです.
3、例
#coding:utf-8
class A:
def function(self):
print "Call nomal method"
@staticmethod #
def Function1():
print "Call static method"
@classmethod #
def Function2(cls):
print "Call class method"
print "cls.__name__ is ",cls.__name__
if __name__ == '__main__':
a = A() #
a.function() #
A.Function1() #
A.Function2() #
結果:
Call nomal method
Call static method
Call class method
cls.__name__ is A