python沒有和C++中static關鍵字,它的靜態方法是怎樣的呢?還有其它語言中少有的類方法又是神馬?python
python中實現靜態方法和類方法都是依賴於python的修飾器來實現的。.net
代碼以下:對象
class MyClass:
def method(self):
print("method")
@staticmethod
def staticMethod():
print("static method")
@classmethod
def classMethod(cls):
print("class method")get
你們注意到普通的對象方法、類方法和靜態方法的去別了嗎?
對象方法有self參數,類方法有cls參數,靜態方法是不須要這些附加參數的。
在C++中是沒有類方法着個概念的的class
代碼以下:
class A(object):
"This ia A Class"object
@staticmethod
def Foo1():
print("Call static method foo1()\n")方法
@classmethod
def Foo2(cls):
print("Call class method foo2()")
print("cls.__name__ is ",cls.__name__)static
A.Foo1();
A.Foo2();語言
結果是:
Call static method foo1()ssm
Call class method foo2() cls.__name__ is A