python 中有兩個在class中的 decorator , classmethod 與 staticmethod。
使用這兩個decorator在 method上,就可以不用特別去實體化class,就可以調用這些方法。
那這兩個 classmethod vs staticmethod 有什麼主要的區別呢?
- @classmethod
- 不需要帶self 參數,但是第一個參數需要是 自己類別的 cls 參數。
- @staticmethod
- 不需要self 參數與自身類別的cls 參數,就像使用函數一樣。
詳細的例子可以對照 給出的例子
装饰器@staticmethod和@classmethod有什么区别? | Stackoverflow about Python
ref.
Descriptor HowTo Guide — Python 2.7.11 documentation
飘逸的python - @staticmethod和@classmethod的作用与区别 - mattkang - 博客频道 - CSDN.NET
Python 中的 classmethod 和 staticmethod 有什么具体用途? - Python - 知乎
[翻译]Python中staticmethod和classmethod的差异
http://www.wklken.me/posts/2013/12/22/difference-between-staticmethod-and-classmethod-in-python.html
装饰器@staticmethod和@classmethod有什么区别? | Stackoverflow about Python
沒有留言:
張貼留言