python中cls是什么意思_python中的cls到底指的是什么,与self有什么区别?
作者:秦风
链接:https://www.zhihu.com/question/49660420/answer/335991541
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。
而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。
这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。
class A(object):
a = 'a'
@staticmethod
def foo1(name):
print 'hello', name
def foo2(self, name):
print 'hello', name
@classmethod
def foo3(cls, name):
print 'hello', name
首先定义一个类A,类A中有三个函数,foo1为静态函数,用@staticmethod装饰器装饰,这种方法与类有某种关系但不需要使用到实例或者类来参与。如下两种方法都可以正常输出,也就是说既可以作为类的方法使用,也可以作为类的实例的方法使用。
a = A()
a.foo1('mamq') # 输出: hello mamq
A.foo1('mamq')# 输出: hello mamq
foo2为正常的
python中cls是什么意思_python中的cls到底指的是什么,与self有什么区别?相关推荐
- Python基础_第3章_Python中的循环结构
Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...
- Python基础_第5章_Python中的数据序列
Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...
- python中的面向对象编程讲解_Python中的面向对象编程详解(上)
创建类 Python 类使用 class 关键字来创建.简单的类的声明可以是关键字后紧跟类名: 代码如下: class ClassName(bases): 'class documentation s ...
- python中function函数的用法_Python中Function(函数)和methon(方法)
在Python中,对这两个东西有明确的规定: 函数function -- A series of statements which returns some value toa caller. It ...
- python深复制与浅复制_Python中的深拷贝和浅拷贝详解
要说清楚Python中的深浅拷贝,需要搞清楚下面一系列概念: 变量-引用-对象(可变对象,不可变对象)-切片-拷贝(浅拷贝,深拷贝) [变量-对象-引用] 在Python中一切都是对象,比如说:3, ...
- python运行mcmc为何老出错_python中mcmc方法的实现
MCMC方法在贝叶斯统计中运用很多,MIT发布的EMCEE是实现的比较好的.介绍页面在下面.源代码中examples里的代码可以帮助理解各种功能,特别是line.py 列出了最小二乘法,最大似然法和M ...
- python实例属性与类属性_Python中的类属性和实例属性引发的一个坑-续
上篇文章Python 中的类属性和实例属性,我们探讨了类属性和实例属性引发的一个小坑.总结了类属性和实例属性的区别如下:类属性可以被类和实例调用,实例属性只能被实例调用 类属性不会随着实例的调用而改变 ...
- python计算数组元素的和_python中数组的运算
Python中进行数组的运算需要调用NumPy包. 其官网是:http://www.numpy.org/www.numpy.org NumPy是Python语言的一个扩充程序库.它支持高级大量的维度 ...
- python中格式化字符串的作用_python中字符串格式化的意义(化妆)
格式 描述 %%百分号标记 #就是输出一个% %c字符及其ASCII码 %s字符串 %d有符号整数(十进制) %u无符号整数(十进制) %o无符号整数(八进制) %x无符号整数(十六进制) %X无符号 ...
- python中 r是什么意思_python中rb含义理解
Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 文件使用方式标识 'r':默认值,表示从文件读取数据 'w':表示要向文件写入数据,并截断以前 ...
最新文章
- XML,Object,Json分析转换Xstream采用
- 全局变量:global与$GLOBALS的区别和使用
- [福大软工] W班 总成绩排行榜
- Python3字符串split和join代码示例
- RequestQueue
- 硬盘检测工具Smartmontools安装、部署、使用
- hdu 4292 Food 最大流
- 英特尔再曝安全漏洞:黑客可窃取个人电脑中机密数据
- VS解决方案的目录结构设置和管理
- 利用Pattern和Mather来禁止特殊字符的输入
- mysql--实战1--查询数据1--scan方法
- 实对称矩阵的特征值求法_特征值的最大值与最小值
- html2canvas截长图
- HP SD2 DAT160小磁带机故障
- 用户流失、股价重挫的Netflix究竟发生了什么?
- Linux基础-分区规划与使用
- 单位提前解除劳动关系怎么赔偿
- Excel -- 实用技巧
- Python语言—爬虫之旅
- 访问网址 token的格式_一文彻底搞懂Cookie、Session、Token到底是什么
热门文章
- wpl计算方法_【数据结构】树的应用-计算哈夫曼树的WPL值
- VSCode生成 自定义代码块
- 毕业设计日志(14)
- 白帽子讲web安全前言经典语录
- dogepool.pw index.php,php – 在Dogecoin转换欧元
- instanceof-说明与用法
- 用计算机计算课件的优点,如何用计算机解决问题精品课件
- 疾风之刃的最新服务器,疾风之刃6月16日更新 数据互通服务器一览
- Flink1.14提交任务报错classloader.check-leaked-classloader问题解决
- 技术面试中的Open Question/开放性问题的总结