博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的method, class method, static method
阅读量:6426 次
发布时间:2019-06-23

本文共 879 字,大约阅读时间需要 2 分钟。

hot3.png

method是类的成员函数,必须由类的实例来调用,可以访问类的实例,第一个参数默认是实例。

class method可以由类,类的实例来调用,但第一个参数默认是类
static method可以由类,类的实例来调用,没有默认参数

class A:    def __init__(self):        self.i = 1    @classmethod    def cm(cls):        print("class method, cls=", cls)    def m(self):        print("method, self={0}, i={1}".format(self, self.i))    @staticmethod    def sm():        print("static method, A=", A)if __name__ == '__main__':    a = A()    a.m()    a.cm()    a.sm()

结果如下:

method, self=<__main__.A object at 0x02A2D190>, i=1 class method, cls= 
static method, A=

method就跟C++, Java中的成员方法一样,使用也最普遍;static method也类似,但在Python中可以定义为模块的function也是一样,使用staticmethod的原因只是在逻辑上进行区分

而classmethod与staticmethod的区别在与classmethod的参数cls可以被重载:

class AA(A):    passif __name__ == '__main__':    aa = AA()    aa.cm()

结果如下:

class method, cls= 

转载于:https://my.oschina.net/caoxinyu0205/blog/741848

你可能感兴趣的文章
FastDFS整合nginx后,nginx一直报错
查看>>
使用Fuel安装OpenStack juno之三使用OpenStack创建云主机和Volume
查看>>
zabbix安装源
查看>>
Eclipse+kafka集群 实例源码
查看>>
Vijos 1067Warcraft III 守望者的烦恼
查看>>
SQL语句
查看>>
LinkedList
查看>>
Python number
查看>>
【Lv1-Lesson008】A Guide to Birthdays
查看>>
MySQL_PHP学习笔记_2015.04.19_PHP连接数据库
查看>>
关于RFC
查看>>
juery 选择器 选择多个元素
查看>>
【新手向】TensorFlow 安装教程:RK3399上运行谷歌人工智能
查看>>
Oracle Net Configuration(监听程序和网络服务配置)
查看>>
c语言_判断例子
查看>>
ubuntu重启不清除 /tmp 设置
查看>>
面向对象
查看>>
JSON
查看>>
SAP发布wbservice,如果有权限管控的话,需要给这个webservice加权限
查看>>
16.Python网络爬虫之Scrapy框架(CrawlSpider)
查看>>