有什麼方法可以使用函數調用而不是「a.x = value」語法在Python中設置屬性?使用函數調用設置Python屬性
說明: 有一個我沒有寫的類。我必須從這個類中查詢和設置各種數據。大多數項目具有setter和getter函數,如getA()和setA(value)。但有一些項目已被宣佈爲屬性。我有一些代碼,我得到各種項目的setter函數,以便我可以循環它們。但它不適用於屬性,因爲沒有setter函數。
class DataObject(object):
def __init__(self, data, setterFunc):
super(DataObject, self).__init__()
self._data = data
self._setterFunc = setterFunc
@property
def data(self):
return self._data
@data.setter
def data(self, value):
if self._setterFunc:
self._data = value
self._setterFunc(value)
foo = SomeClassIDidNotWrite()
objectList = []
objectList.append(DataObject(foo.getA(), foo.setA))
objectList.append(DataObject(foo.getB(), foo.setB))
# objectList.append(DataObject(foo.c, foo.c)) <-- This does not work
for dataObj in objectList:
dataObj.data = 5
這對我的使用情況非常合適。謝謝。 –