1. 程式人生 > >python類方法,例項方法,靜態方法的區別

python類方法,例項方法,靜態方法的區別

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()