globalList = []
class MyList:
def __init__(self):
self._myList = [1, 2, 3]
@property
def myList(self):
return self._myList + globalList
@myList.setter
def myList(self, val):
self._myList = val
mL1 = MyList()
print("myList: ", mL1.myList)
mL1.myList.append(4)
print("after appending a 4, myList: ", mL1.myList)
mL1.myList.extend([5,6,"eight","IX"])
print("after extend, myList: ", mL1.myList)
Risultato:Python proprietà decorare setter con la lista
myList: [1, 2, 3]
after appending a 4, myList: [1, 2, 3]
after extend, myList: [1, 2, 3]
Il problema che sto affrontando è che mL1.myList.append (4) e mL1.myList.extend ([5,6, otto " "," IX "]) non modificare l'attributo _myList nell'oggetto mL1. Come potrei fare per risolvere il problema?
Potrebbe risolvere il rientro? Non sono sicuro di dove sia destinata la seconda fiction. –
Non mi è chiaro quale comportamento ti aspetteresti. Dovrebbe 'append()' aggiungere a '_myList' (ovvero i valori non verranno aggiunti alla fine come ci si aspetterebbe) o a' globalList'? Ad ogni modo, è abbastanza chiaro che questo non funzionerebbe in quanto il valore restituito è una nuova lista prodotta concatenando altri due elenchi. Estendere ciò non cambierà in qualche modo. –
append() dovrebbe aggiungersi a _myList, e così extender() – user14042