python的實例方法、類方法、靜態方法

In [48]: class TestStaticMethod():
   ....:     @staticmethod
   ....:     def foo():
   ....:         print'static foo is called'
   ....:     @classmethod
   ....:     def foo2(cls):
   ....:         print'class foo2 is called'
   ....:         print'foo2 is part of calss',cls.__name__
   ....:         

In [49]: Te
Templates/        TestStaticMethod  

In [49]: TestStaticMethod.foo()
static foo is called

In [50]: TestStaticMethod.foo2()
class foo2 is called
foo2 is part of calss TestStaticMethod

In [51]: test = TestStaticMethod()

In [52]: test.foo()
static foo is called

In [53]: test.foo2()
class foo2 is called
foo2 is part of calss TestStaticMethod

總結:
1 三種方法,除了實例方法只能被實例調用外,其余對于類和實例均可以被調用
2 實例方法第一個參數self
靜態方法對參數無要求
類方法的第一個參數為類,一般用cls表示

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容