[英]Chained getattr method calls
假设我有
class Blah:
def __init__(self):
self.foo = ...
self.bar = ...
foo和bar没有实现getattr 。 而且他们没有 attr "abc" 和 "xyz"
有没有可能欺骗它做
b = Blah()
x = b.foo.abc
y = b.bar.xyz
或者
x = b.abc.foo
y = b.xyz.bar
foo 和 bar 甚至可能不存在,即某种虚拟
不,这是不可能的。 当你这样做
x = b.foo.abc
它本质上相当于
temp = b.foo
x = temp.abc
当您使用.abc
时,不再引用Blah
实例,您只是从foo
属性中存储的任何值中获取它。 因此,如果该值没有abc
属性或__getattr__
方法,您将收到错误消息。
Blah
无法拦截对其属性下一个级别的访问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.