[英]Increment class property attribute in setter
我了解python中的getter / setter的概念。 我無法理解的是,我需要向變量本身添加新值,而且我不確定如何使用@property裝飾器實現此目的。
舊代碼實例化一些變量,並對其進行自我遞增。 我試圖重構代碼並將這些變量移到類中,並添加@ property / setter,以便可以將它們作為屬性進行訪問。
舊代碼:
class ExistingCode(object):
a = 0
b = 0
c = 0
d = 0
bunch of other code..
a += 12
b += 12
c += 12
d += 12
我正在嘗試做的是:
class Variables(object):
def __init__(self):
a = 0
b = 0
c = 0
d = 0
@property
def a(self):
return self.a
@a.setter
def a(self, x)
a = x
......
我收到“ RuntimeError:超出最大遞歸深度”。 請幫忙。
我發現了問題。 主要問題是我使用的@martineau提到的屬性和屬性使用相同的名稱。 另外,我在很多地方都想念自己。 以下是工作示例。
class Variables(object):
def __init__(self):
self.a = 0
@property
def a(self):
return self.__a
@a.setter
def a(self, x):
self.__a = x
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.