作者:秦风

链接: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有什么区别?相关推荐

  1. Python基础_第3章_Python中的循环结构

    Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...

  2. Python基础_第5章_Python中的数据序列

    Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...

  3. python中的面向对象编程讲解_Python中的面向对象编程详解(上)

    创建类 Python 类使用 class 关键字来创建.简单的类的声明可以是关键字后紧跟类名: 代码如下: class ClassName(bases): 'class documentation s ...

  4. python中function函数的用法_Python中Function(函数)和methon(方法)

    在Python中,对这两个东西有明确的规定: 函数function -- A series of statements which returns some value toa caller. It ...

  5. python深复制与浅复制_Python中的深拷贝和浅拷贝详解

    要说清楚Python中的深浅拷贝,需要搞清楚下面一系列概念: 变量-引用-对象(可变对象,不可变对象)-切片-拷贝(浅拷贝,深拷贝) [变量-对象-引用] 在Python中一切都是对象,比如说:3, ...

  6. python运行mcmc为何老出错_python中mcmc方法的实现

    MCMC方法在贝叶斯统计中运用很多,MIT发布的EMCEE是实现的比较好的.介绍页面在下面.源代码中examples里的代码可以帮助理解各种功能,特别是line.py 列出了最小二乘法,最大似然法和M ...

  7. python实例属性与类属性_Python中的类属性和实例属性引发的一个坑-续

    上篇文章Python 中的类属性和实例属性,我们探讨了类属性和实例属性引发的一个小坑.总结了类属性和实例属性的区别如下:类属性可以被类和实例调用,实例属性只能被实例调用 类属性不会随着实例的调用而改变 ...

  8. python计算数组元素的和_python中数组的运算

    Python中进行数组的运算需要调用NumPy包. 其官网是:http://www.numpy.org/​www.numpy.org NumPy是Python语言的一个扩充程序库.它支持高级大量的维度 ...

  9. python中格式化字符串的作用_python中字符串格式化的意义(化妆)

    格式 描述 %%百分号标记 #就是输出一个% %c字符及其ASCII码 %s字符串 %d有符号整数(十进制) %u无符号整数(十进制) %o无符号整数(八进制) %x无符号整数(十六进制) %X无符号 ...

  10. python中 r是什么意思_python中rb含义理解

    Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 文件使用方式标识 'r':默认值,表示从文件读取数据 'w':表示要向文件写入数据,并截断以前 ...

最新文章

  1. XML,Object,Json分析转换Xstream采用
  2. 全局变量:global与$GLOBALS的区别和使用
  3. [福大软工] W班 总成绩排行榜
  4. Python3字符串split和join代码示例
  5. RequestQueue
  6. 硬盘检测工具Smartmontools安装、部署、使用
  7. hdu 4292 Food 最大流
  8. 英特尔再曝安全漏洞:黑客可窃取个人电脑中机密数据
  9. VS解决方案的目录结构设置和管理
  10. 利用Pattern和Mather来禁止特殊字符的输入
  11. mysql--实战1--查询数据1--scan方法
  12. 实对称矩阵的特征值求法_特征值的最大值与最小值
  13. html2canvas截长图
  14. HP SD2 DAT160小磁带机故障
  15. 用户流失、股价重挫的Netflix究竟发生了什么?
  16. Linux基础-分区规划与使用
  17. 单位提前解除劳动关系怎么赔偿
  18. Excel -- 实用技巧
  19. Python语言—爬虫之旅
  20. 访问网址 token的格式_一文彻底搞懂Cookie、Session、Token到底是什么

热门文章

  1. wpl计算方法_【数据结构】树的应用-计算哈夫曼树的WPL值
  2. VSCode生成 自定义代码块
  3. 毕业设计日志(14)
  4. 白帽子讲web安全前言经典语录
  5. dogepool.pw index.php,php – 在Dogecoin转换欧元
  6. instanceof-说明与用法
  7. 用计算机计算课件的优点,如何用计算机解决问题精品课件
  8. 疾风之刃的最新服务器,疾风之刃6月16日更新 数据互通服务器一览
  9. Flink1.14提交任务报错classloader.check-leaked-classloader问题解决
  10. 技术面试中的Open Question/开放性问题的总结