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)
Wynik:Python seter nieruchomość zdobienia z listy
myList: [1, 2, 3]
after appending a 4, myList: [1, 2, 3]
after extend, myList: [1, 2, 3]
Problem jestem stoi to, że mL1.myList.append (4) i mL1.myList.extend ([5,6 ", osiem "," IX "]) nie modyfikuj atrybutu _myList w obiekcie mL1. Jak mogę zrobić, aby rozwiązać problem?
mógłbyś naprawić wgniecenie? Nie jestem pewna, gdzie ma się wciskać druga fikcja. –
Nie jest dla mnie jasne, jakie zachowanie można się spodziewać. Czy 'append()' należy dodać do '_myList' (co oznacza, że wartości nie zostaną dodane do końca tak, jak można by oczekiwać) lub do' globalList'? Tak czy inaczej, jest całkiem jasne, że to nie zadziała, ponieważ zwrócona wartość jest nową listą utworzoną przez połączenie dwóch innych list. Rozszerzenie, które w jakiś sposób nie zmieni się z powrotem. –
append() należy dodać do _myList, a także czy jest on rozszerzony() – user14042