这是我的代码。我不知道为什么它不起作用。
class a:
def __get__(self):
return 'xxx'
def aa(self):
print 'aaaa'
b=a()
print b.get('aa')
请尝试用代码回答,因为我的英语不是很好。谢谢。
class HideX(object):
def __init__(self, x):
self.x = x
def get_x(self):
return self.__x
def set_x(self, x):
self.__x = x+10
x = property(get_x, set_x)
inst = HideX(20)
print inst.x
inst.x = 30
print inst.x
答案 0 :(得分:1)
我认为在尝试使用它们之前,您应该在Descriptors上阅读更多内容。
答案 1 :(得分:1)
您正在调用obj.get
,但class A
中没有get函数,因此出错,
将__get__
重命名为get
,或者如果您偶然尝试使用描述符,请执行以下操作
class A(object):
def __get__(self, obj, klass):
print "__get__", obj, klass
return 'xxx'
class X(object):
a = A()
x=X()
print x.a