静态方法
要在类中使用静态方法,需在类成员函数前面加上@staticmethod标记符,以表示下面的成员函数是静态函数。使用静态方法的好处是,不需要定义实例即可使用这个方法。另外,多个实例共享此静态方法。
代码如下:
class SimClass():
@staticmethod
def ShareStr():
print "This is a static Method"
SimClass.ShareStr() #使用静态函数
类方法
类方法与普通的成员函数和静态函数有不同之处,在接触的语言中好像也没见过这种语义,看它的定义:
一个类方法就可以通过类或它的实例来调用的方法, 不管你是用类来调用这个方法还是类实例调用这个方法,该方法的第一个参数总是定义该方法的类对象。
记住:方法的第一个参数都是类对象而不是实例对象.
按照惯例,类方法的第一个形参被命名为 cls. 任何时候定义类方法都不是必须的(类方法能实现的功能都可以通过定义一个普通函数来实现,只要这个函数接受一个类对象做为参数就可以了).
代码如下:
class ABase(object):
@classmethod #类方法修饰符
def aclassmet(cls): print 'a class method for', cls.__name__
class ADeriv(ABase): pass
bInstance = ABase( )
dInstance = ADeriv( )
ABase.aclassmet( ) # prints: a class method for ABase
bInstance.aclassmet( ) # prints: a class method for ABase
ADeriv.aclassmet( ) # prints: a class method for ADeriv
dInstance.aclassmet( ) # prints: a class method for ADeriv
另参考:http://docs.python.org/release/2.6.6/howto/descriptor.html#static-methods-and-class-methods
个人认为,类方法比静态方法多一个叫“类名称”的参数cls,用这个参数可以构造该类的实例。
分享到:
相关推荐
python姿态检测实现多人多姿态识别python行为识别openpose行为骨骼框架检测动作识别动作检测行为动作分类part1 需要下载其他压缩包放一个文件夹内解压!!! part2:...
第11篇 https://yydatav.blog.csdn.net/article/details/119909960 第12篇 https://yydatav.blog.csdn.net/article/details/120053057 第13篇 https://yydatav.blog.csdn.net/article/details/120314047 第14篇 ...
第1篇 https://yydatav.blog.csdn.net/article/details/106571356 第2篇 https://yydatav.blog.csdn.net/article/details/106783264 第3篇 https://yydatav.blog.csdn.net/article/details/106937661 第4篇 ...
资源分类:Python库 所属语言:Python 资源全名:sybil-1.0.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
更多Python&Echarts版的数据可视化大屏源码: https://yydatav.blog.csdn.net/article/details/120705616 更多Java SpringBoot&Echarts版的数据可视化大屏源码: ...
实战自学python如何成为大佬(目录):https://blog.csdn.net/weixin-67859959/artic
参考文章链接: https://yydatav.blog.csdn.net/article/details/126895274 更多资源: https://yydatav.blog.csdn.net/article/details/120705616
逐步python+pygame实现推箱子小游戏,图文并茂,注释详尽,资源完整。 https://blog.csdn.net/cxhold/article/details/140003834 https://blog.csdn.net/cxhold/article/details/140013061 ...
食用方法可参考我写的博客:https://blog.csdn.net/weixin_43486940/article/details/118701303 本文主要介绍如何使用python搭建:一个基于:粒子群优化算法(PSO:Particle swarm optimization) 优化CNN网络,并...
python+pygame实现五子棋人机对战,讲解五子棋的基本知识和电脑应手的逻辑。内容详细,注释完整,讲解透彻。该版本不涉及到套接字编程。 https://blog.csdn.net/cxhold/article/details/140126002 ...
https://blog.csdn.net/u012156341/article/details/89337548 https://blog.csdn.net/u012156341/article/details/89353031 https://blog.csdn.net/u012156341/article/details/89354624 等相关案例资源
python+pygame实现五子棋人机对战,讲解五子棋的基本知识和电脑应手的逻辑。内容详细,注释完整,讲解透彻。该版本不涉及到套接字编程。 https://blog.csdn.net/cxhold/article/details/140126002 ...
python摔倒检测,跌倒检测openpose站立行为检测视频教程 项目简介:https://blog.csdn.net/babyai996/article/details/123954062 项目下载:https://download.csdn.net/download/babyai996/87463578