Python的实例属性如何理解?
巴扎黑
巴扎黑 2017-04-17 16:30:50
[Python讨论组]

在看 编程导论 的面对对象编程时,提到了一个示例:(部分代码)

class IntSet(object):
    def insert(self, e):
        <...>

s = IntSet()

在随后的讲解中,作者提到:IntSet.inserts.insert是不同的对象。这句话如何理解?

巴扎黑
巴扎黑

全部回复(2)
黄舟

这个问题涉及的东西有点多。
简单的讲就是类属性,实例属性的区别。
扩展开来讲就是类属性和实例属性查找的细节不同,这里面包括内置方法,描述符,装饰器相关知识。
这方面的文章有:
[编写高质量代码 改善Python程序的91个建议]这本书的第59,第60个建议。
原文:
Python Attributes and Methods
Descriptor HowTo Guide
译文:
Python属性和方法
Python描述器引导(翻译)

伊谢尔伦

s.insert(e) 相当于 IntSet.insert(s, e)s.insert 相当于 functools.partial(IntSet.insert, s),也就是把实例对象绑定作为第一个变量后得到的新的函数。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号