__getattr__()方法,动态返回一个属性

当调用不存在的属性时,比如score,Python解释器会试图调用__getattr__(self, 'score')来尝试获得属性,这样,我们就有机会返回score的值。也可以返回函数。
__getattr__默认返回None
利用完全动态的__getattr__,我们可以写出一个链式调用:

class Chain(object):

    def __init__(self, path=''):
        self._path = path

    def __getattr__(self, path):
        return Chain('%s/%s' % (self._path, path))

    def __str__(self):
        return self._path

    __repr__ = __str__
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 5,510评论 0 6
  • 1. 使用__slots__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实...
    时间之友阅读 2,144评论 0 1
  • Python进阶框架 希望大家喜欢,点赞哦首先感谢廖雪峰老师对于该课程的讲解 一、函数式编程 1.1 函数式编程简...
    Gaolex阅读 10,930评论 6 53
  • 毕业,失业。失去了学生的身份,辞去了离家千万里的工作,回到离家不远的城市里,开始了全新的打拼 然而任何方向也没有,...
    黑暗裡的飛蛾阅读 1,046评论 0 0
  • 小三是律师,一个出道几年的律师,律师这行,“半年不开张,开张吃半年”,这是夸张点的说法,但有时候确实不是很忙,比如...
    原将阅读 2,880评论 2 3