globalList = []
class MyList:
def __init__(self):
self.myList = [1, 2, 3]
@property
def myList(self):
return self.myList.extend(globalList)
@myList.setter
def myList(self):
return self.myList
mL1 = MyList()
print("myList: ", mL1.myList)
mL1.myList.append(4)
print("after appending a 4, myList: ", mL1.myList)
моя цель состоит в том, чтобы быть в состоянии назвать mL1.myList, который оценивает MyList атрибут экземпляра и глобальный объект globalList, но вот ошибка:Python свойство сеттер украшение объекта списка
Traceback (most recent call last):
File "C:\Documents and Settings\Administrator\Desktop\Dropbox\sandbox.py", line 14, in <module>
mL1 = MyList()
File "C:\Documents and Settings\Administrator\Desktop\Dropbox\sandbox.py", line 6, in __init__
self.myList = [1, 2, 3]
TypeError: myList() takes 1 positional argument but 2 were given
Что я должен сделать, чтобы решить эту проблему?
Я не уверен, что вы пытаетесь сделать, но вы, кажется, неправильно используете свойства. Инициатор свойств (что вы создаете с помощью 'myList.setter') - это то, что вызывается, когда вы делаете' mL1.myList = something'. Он должен принять другой аргумент, который является значением 'something', для которого должно быть установлено свойство. Если вы хотите, чтобы вы могли читать 'mL1.myList', зачем вам нужен сеттер? Что вы хотите, чтобы сеттер сделал? – BrenBarn