私はプロパティ()を読んでいましたが、これは、属性アクセスがプロパティ()で指定されたメソッドを通過することを理解しています。しかし、次のコードを実行すると、「RuntimeError: maximum recursion depth exceeded」が発生しました。
class Property(object):
def __init__(self):
self.x = "Raj"
def gettx(self):
print "getting x"
return self.x
def settx(self, val):
print "Setting x"
self.x = val
def dellx(self):
print "deleting"
return self.x
x = property(gettx, settx, dellx, "I'm object property")
p = Property()
print "p.x", p.x
p.x = "R"
print "p.x:", p.x
この方法でプロパティを適用することはできませんか。「self.x」が「self._x」と「self.__x」に変更されたときに正常に機能したためです。