国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > 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| 欧美大妈LOGO大全及价格图| 妈妈的绣感1| 吃春晚药后妈妈疯了怎么对付| 东北娘们国语版免费播放 | 天美麻花星空影视免费观看电视剧 | 《性88分钟》| 生殖瑜伽| YY影院免费观看电视剧网站| 欧美大片| 美女两个球球抖动抓球球视频| 《妻子的肉体偿还》5| 坤坤寒入桃子里电视剧| 《我的妹妹想你大棒棒糖电视剧》| 韩浸免费浸画在线观看阅读| 私人教练1982年美国| 教室停电 挺进她体内H| 八戒八戒电影在线看免费观看8| 日韩| 热情的邻居2019| 白色变态蕾丝超薄开档连身袜| 全飞秒手术2024价目表| 成全在线观看免费完整版的 | 黑人空乘伦理5| 美女和帅哥一起努力生产豆浆| CSGO暴躁妹妹免费观看电视剧| 十大名阴排名一览表| 婆媳双飞杨钰莹阅读| 韩国三级有夫之妇| 武松叼着潘金莲奶头的是谁扮演的 | 老阿姨高清在线观看电视剧法游戏 | 搞笑视频| 51今日大瓜 每日大赛往期| 徐婷被房东揉到高潮的视频| 77777免费观看电视剧推荐适.