python(三)@staticmethod和@classmethod使用和区别
2024-10-19 12:40:54
转载自[1]
一般要用某个类的方法,先要实例这个类。
但是可以通过@staticmethod和@classmethod,直接用“类.方法()”来调用这个方法。
而 @staticmethod和@classmethod 区别是
@staticmethod不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样。
@classmethod也不需要self参数,但第一个参数需要是表示自身类的cls参数。
@staticmethod中要调用到这个类的一些属性方法,可以直接类名.属性名或类名.方法名。
@classmethod有cls参数,可以来调用类的属性,类的方法,实例化对象等,避免硬编码。
下面上代码
class A(object):
bar = 1
def foo(self):
print 'foo' @staticmethod
def static_foo():
print 'static_foo'
print A.bar @classmethod
def class_foo(cls):
print 'class_foo'
print cls.bar
cls().foo() A.static_foo()
#输出
#static_foo
# A.class_foo()
#输出
#class_foo
#
#foo
参考:
[1] @staticmethod和@classmethod 作用和区别
http://blog.csdn.net/qq_15037231/article/details/77943109
最新文章
- jqGrid配置属性说明
- Jmeter + Grafana + InfluxDB 性能测试监控
- BZOJ 1853: [Scoi2010]幸运数字
- assets中放入中文文件名导致Android Studio编译错误
- Apache httpd和JBoss构建高可用集群环境
- jQuery插件综合应用(一)注册
- Tomcat 8熵池阻塞变慢详解(转)
- 下拉框上移、下移、添加、移除demo
- 代理模式 - OK
- TextField的所有属性和方法(转)
- MVC 5 + EF6 完整教程15 -- 使用DI进行解耦
- SSH隧道:端口转发功能详解
- 记一次nginx强制将https请求重定向http
- oracle建表流程
- Day019--Python--反射
- RS485 通信接收时丢失0x11等数据
- AHD/TVI/CVI/CVBS/IP
- 《深入分析JavaWeb技术内幕》学习笔记
- java基础22 日期类、日历类、日期格式类
- bzoj1588 [HNOI2002]营业额统计 (treap)
热门文章
- django系列 1 :python+django环境搭建 +mac提示找不到manage.py命令
- Python_反射
- linux 下配置svn
- MySQL准备
- div设置overflow-scroll滚动之后,jq获取其子元素的offset.top出现问题。
- 抛开jQuery,拾起原生JS的DOM操作
- python机器学习-sklearn挖掘乳腺癌细胞(五)
- MySQL最优配置模板( 5.6&;5.7)(运维那点事)
- java版微信公众号支付(H5调微信内置API)
- excel vlookup简易样例【原】