Python @staticmethod 和 @classmethod 的异同
来源:互联网 发布:软件侵权起诉状范本 编辑:程序博客网 时间:2024/06/08 23:10
@staticmethod 和 @classmethod,这两个 function decorator都是用来定义静态函数的。
相同点
调用这两个decorator定义的函数,都不用实例化类,直接用类名就可以调用
不同点
@classmethod 的第一个参数是 cls,因此可以访问类变量,或是用作类厂
而 @staticmethod 除了自身代码是位于类里面之外,对类的情况一无所知;@staticmethod 只适用于不想定义全局函数的情况
建议
一般情况下,尽量使用 @classmethod
Sample
class StaticClassMethodSample(): my_class_var = 3 @staticmethod def my_staticmethod(): print StaticClassMethodSample.my_class_var @classmethod def my_classmethod(cls): print cls.my_class_var
(原文地址:http://u50.cn/blog/python-staticmethod-%E5%92%8C-classmethod-%E7%9A%84%E5%BC%82%E5%90%8C)
- Python @staticmethod 和 @classmethod 的异同
- Python中的staticmethod和classmethod 的异同
- python的staticmethod和classmethod
- python的@classmethod和@staticmethod
- python staticmethod和classmethod
- Python @staticmethod和@classmethod
- 【python】classmethod 和staticmethod
- python classmethod和staticmethod
- python的staticmethod、classmethod
- python 的@classmethod &&@staticmethod
- 【Python】Staticmethod和classmethod的区别
- python中staticmethod和classmethod的区别
- Python的classmethod和staticmethod区别
- python中classmethod和staticmethod的区别
- Python @classmethod 和 @staticmethod的比较
- python的classmethod和staticmethod方法
- python中staticmethod和classmethod的区别
- Python中的staticmethod和classmethod
- Eclipse开发的一些原则
- varchar2 字段转换成lob类型
- linux 下 error: stray ‘/357’ in program
- 【Android API指南】App组件(2) - Activities
- javascript判断闰年
- Python @staticmethod 和 @classmethod 的异同
- 推荐一款绿色小巧的超大文本文件查看编辑器
- HDU 1266 Reverse Number
- C++程序调用C语言库的解决方案(开发61850程序时遇到)
- SOAP UI 简单使用
- 中秋你们吃的月饼?
- offset
- C#中Invoke与BeginInvoke的区别(另附使用循环创建多个线程)
- cocos2d-x CCCallFunc系列函数的应用