本文介绍了python属性get和set order是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
直接访问a.foo
内部字典a.__dict__['foo']
获取并设置a.__get__和a.__set__,当然有两种预定义的方法.
getattribute a.__getattribute__
__getattr__和__setattr__
也许更多.
direct access a.foo
inner dict a.__dict__['foo']
get and set a.__get__ and a.__set__,of course there two are pre-defined methods.
getattribute a.__getattribute__
__getattr__ and __setattr__
maybe more.
调用a.__getattribute__('foo')
默认情况下依次查找a.__dict__['foo']
如果在A上定义,或调用foo的.__get__().
invokes a.__getattribute__('foo')
which in turn by default looks up a.__dict__['foo']
or invokes foo's .__get__() if defined on A.
调用a.__getattribute__('foo')
默认情况下依次查找a.__dict__['foo']
或如果在A上定义,则调用foo的.__set__(bar).
invokes a.__getattribute__('foo')
which in turn by default looks up a.__dict__['foo']
or invokes foo's .__set__(bar) if defined on A.
Python为我们提供了许多关于实例/类属性的可能性,例如:
Python provides us many possibilities on instance/class attribute, for example:
class A(object): def __init__(self): self.foo = "hello" a = A()有许多方法可以访问/更改self.foo的值:
There are many ways to access/change the value of self.foo:
在阅读源代码时,我总是迷失了他们的最终访问顺序是什么?当我使用a.foo时,如何知道将实际调用哪个方法/属性?
While reading source code, I always get lost of what's their ultimate access order? When I use a.foo, how do I know which method/attribute will get called actually?
推荐答案bar = a.foo ...
然后将返回值分配给bar.
a.foo = bar ...
更多推荐
python属性get和set order是什么?
发布评论