我有一个定义如下的对象
class a():
@property
def prop(self):
print("hello from object.prop")
@property
def prop1(self):
print("Hello from object.prop.prop")
当我打电话时
>>> obj = a()
>>> obj.prop
hello from object.prop
>>> obj.prop.prop
我收到以下回溯错误
Traceback (most recent call last):
File "object_property.py", line 13, in <module>
a.prop.prop1
AttributeError: 'NoneType' object has no attribute 'prop1'
我想知道是否可以为对象定义嵌套属性?
回溯是因为您的财产没有return
语句,因此它返回NoneType
,它显然不能有自己的属性。您的属性可能需要返回一个不同类的实例,该类有自己的prop
属性。像这样的事情:
class a():
def __init__(self):
self.b = b()
@property
def prop(self):
print("hello from object.prop")
return self.b
class b():
@property
def prop(self):
print("Hello from object.prop.prop")
x = a()
print x.prop.prop
>> hello from object.prop
>> Hello from object.prop.prop
>> None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)