python類方法,例項方法,靜態方法的區別
阿新 • • 發佈:2019-01-31
class MyClass:
def method(self):
print("method")
@staticmethod
def staticMethod():
print("static method")
@classmethod
def classMethod(cls):
print("class method")
#普通函式
def function():
print("function")
定義區別:
1.類方法和例項方法分別有專門的修飾符
2.例項方法有self引數,類方法有cls引數(類引數),靜態方法是不需要這些附加引數的
訪問區別:
1. 類和例項都可以訪問靜態方法和類方法
2. 從理論上來說,類是不能訪問例項方法的,但是可以把例項/類作為引數傳入,訪問如下:
a=Myclass()
Myclass.method(a)
Myclass.method(Myclass)
3.類可以訪問普通函式,例項卻不可以。
#正確的
Myclass.function()
#報錯的
a.function()