Python语言学习讲解二:@staticmethod和@classmethod的作用与区别
来源:互联网 发布:淘宝恒源祥是正品吗 编辑:程序博客网 时间:2024/06/07 20:26
一般来说针对于类来说方法的分类:成员方法、静态方法、类方法等
成员方法:使用的时候需要需要先实例化一个对象再调用方法。
静态方法:使用@staticmethod修改的方法
类方法:使用@classmethod修改的方法
使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。
这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。
静态方法和 类方法区别:
- @staticmethod:无self参数、无cls参数,就跟使用函数一样。
- @classmethod:无self参数,但第一个cls参数。
@staticmethod方法内要调用到这个类的一些属性方法,只能直接类名.属性名或类名.方法名。
@classmethod因为持有cls参数,可以来调用类的属性,类的方法,实例化对象等,避免硬编码。
下面上代码。
[python] view plain copy
1. class MyClass(object):
2. a= 1
3. def f1(self):
4. print 'f1'
5.
6. @staticmethod
7. def static_f1():
8. print 'static_f1'
9. print MyClass.a
10.
11. @classmethod
12. def class_f1(cls):
13. print 'class_f1'
14. print cls.a
15. cls().f1()
16.
17. A.static_f1()
18.A.class_f1()
输出
static_f1
1
class_f1
1
f1
- Python语言学习讲解二:@staticmethod和@classmethod的作用与区别
- 飘逸的python - @staticmethod和@classmethod的作用与区别
- python - @staticmethod和@classmethod的作用与区别
- python @staticmethod和@classmethod的作用与区别
- @staticmethod和@classmethod的作用与区别
- python中@classmethod与@staticmethod的区别和用法
- 【Python】Staticmethod和classmethod的区别
- python中staticmethod和classmethod的区别
- Python的classmethod和staticmethod区别
- python中classmethod和staticmethod的区别
- python中staticmethod和classmethod的区别
- Python @classmethod和@staticmethod区别
- staticmethod和classmethod的区别
- python的staticmethod和classmethod
- python的@classmethod和@staticmethod
- Python中@staticmethod和@classmethod的区别和用法
- python中@staticmethod 、@classmethod 与一般方法的区别
- Python: classmethod & staticmethod 区别
- 自己实现炫酷的Android Studio插件开发
- 判断是否为今年、是否为今天、是否为昨天,比较当前时间和from时间的差值
- Javascript中的栈
- CMD杀死进程
- 交通标志的检测与识别(一)
- Python语言学习讲解二:@staticmethod和@classmethod的作用与区别
- android中string.xml中%1$s、%1$d等的用法
- 浅谈JavaScript 函数作用域当中的“提升”现象
- TreeSet 练习
- C# Socket编程 服务端与客户端(二)
- mac java环境变量配置 maven配置
- 图片圆角处理封装
- UART和RS232/RS485的关系是什么?
- 如何准备阿里社招面试,顺谈 Java 程序员学习中各阶段的建议