韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python基础教程 > Python之classmethod和staticmethod的区别

Python之classmethod和staticmethod的区别

头像

爱喝马黛茶的安东尼

2019-07-03 09:35:132786浏览 · 0收藏 · 0评论

python中3种方式定义类方法,常规方式、@classmethod修饰方式、@staticmethod修饰方式。

class A(object):
    def foo(self, x):
        print('调用foo函数 (%s, %s)'%(self, x))
        print('self:', self)
    @classmethod
    def class_foo(cls, x):
        print('调用class_foo函数 (%s, %s)' % (cls, x))
        print('cls:', cls)
    @staticmethod
    def static_foo(x):
        print('调用static_foo函数 (%s)' % (x))
a = A()

1. 定义方式

普通foo()函数需要self参数隐式的传递当前类对象的实例。@classmethod修饰的方法class_foo()需要通过cls参数传递当前类对象。@staticmethod修饰的方法定义与普通函数是一样的。

self和cls的区别不是强制的,只是PEP8中一种编程风格,slef通常用作实例方法的第一参数,cls通常用作类方法的第一参数。即通过self来传递当前类对象的实例,cls传递当前类对象。

2. 绑定对象

foo方法绑定对象A的实例
print(a.foo)
<bound method A.foo of <__main__.A object at 0x100721cf8>>
class_foo方法绑定对象A
print(a.class_foo)
<bound method A.class_foo of <class '__main__.A'>>
static_foo没有参数绑定。
print(a.static_foo)
<function A.static_foo at 0x100727730>

相关推荐:《Python视频教程

3. 调用的方式

foo可通过实例a调用,类对象A直接调用会参数错误。

print(a.foo(1))
调用foo函数 (<__main__.A object at 0x10245ccf8>, 1)
self: <__main__.A object at 0x10245ccf8>
print(A.foo(1))
Traceback (most recent call last):
  File "/Users/liuhuiling/Desktop/MT_code/OPUnittest/case/demo.py", line 63, in <module>
    print(A.foo(1))
TypeError: foo() missing 1 required positional argument: 'x'

class_foo可通过类对象A 或对象实例a调用。

a.class_foo(2)
A.class_foo(2)
调用class_foo函数 (<class '__main__.A'>, 2)
cls: <class '__main__.A'>

static_foo可通过类对象A 或对象实例a调用。

a = A()
a.static_foo(3)
A.static_foo(3)
调用static_foo函数 (3)

4. 继承与覆盖普通类函数一样。

class C(A):
    pass
c = C()
c.foo(1)
c.class_foo(1)
c.static_foo(1)

运行结果:

调用foo函数 (<__main__.B object at 0x10246a2b0>, 1)
self: <__main__.B object at 0x10246a2b0>
调用class_foo函数 (<class '__main__.B'>, 1)
cls: <class '__main__.B'>
调用static_foo函数 (1)
关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

日产无码久久久久久精品红桃| 女子排尿视频大全| 初中小姐姐脚丫踩在男生困困| 麦子交换2免费完整版| 《艾娃》法国| 电影《乳妓》在线观看| 成都私人情侣免费看电视剧的软件 | 汁液横流BY笔趣阁| 第一次和公翁做爰又大又粗| 爸老师巅峰电影在线观看| 公交车被上高湖了还能坐吗小说| 打开B站看片| 小雪被体育老师抱到仓库| 丫头把腿开大让我添添| 麻豆传媒在线观看| 《别告诉我丈夫》播放| 器材室轮-」-(1):蒙着眼在.. | 男女主亲密缠绕的画面真人版| 美女和男生一起努力生产豆浆| 成品PPT网站大片入口| 医生含着我的奶边摸边做视频 | 他扒开我小滨添我三男一女视频 | 蜜桃熟了| 少女与狗2在线观看免费版高清| 女主被兄弟三人轮流欺负的小说 | 单亲妈妈韩剧在线观看全集 | 罪恶之城2| 灭火宝贝| 小SAO货撅起屁股扒开C打视频 | 老师穿白色双开真丝旗袍怎么穿| 抵达花心乖叫老公是第几集| 蜜桃影视| 《男医生的特殊治疗》| 69精品久久久久久久精品A片 | 我在公车被蹭水后当晚就来了月经| 歪歪漫画| 《黏糊糊的你》动漫免费观看 | 翁和媳小莹浴室欢爱52章| 王叔我老公还在客厅呢什么小说| 都市枭雄| 母亲とが话しています读音