x
が
TestProperty
のインスタンスである場合は、このサンプルコードで
、私は決定したいと思います:ディスクリプタのクラスを決定する方法は?
class TestProperty(object):
def __init__(self, name):
self._name = name
def __get__(self, instance, cls):
return getattr(instance, self._name)
def __set_(self, instance, value):
setattr(instance, self._name, value)
class Test(object):
x = TestProperty("x")
print isinstance(Test.x, TestProperty)
をしかし、私は次の例外を取得:
Traceback (most recent call last):
File "/home/zenoss/testproperties.py", line 14, in <module>
print isinstance(Test.x, TestProperty)
File "/home/zenoss/testproperties.py", line 6, in __get__
return getattr(instance, self._name)
AttributeError: 'NoneType' object has no attribute 'x'
があれば、属性を伝えるためにとにかくがあります記述子の場合はクラスのインスタンスですか?現在__get__
で
ありがとう、 'インスタンスがNone'のときに' self'を返すことはそのトリックを行います。 – Ben
@Ben、よろしくお願いします。ハッピーパイソンハッキング! – falsetru