Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 5, 2011 22:17:00

Alex_Kutsan
От:
Зарегистрирован: 2010-03-25
Сообщения: 150
Репутация: +  0  -
Профиль   Отправить e-mail  

property list

узнал что в Питоне 3.2 есть такая замечательная штука как property.
Очень обрадовался, стал использовать. Но не получается сделать property для массива.

class C(object):
_x = []
@property
def x(self,i): return self._x[i]
@x.setter
def x(self,i, value): self._x[i] = value
@x.deleter
def x(self): del self._x
def add(self,value):
self._x.append(value)

Maseges = C()
Maseges.add('mamamia')
a = Maseges.x[0]
выдаёт ошибку, что дескать ожидалось 2 аргумента, а получен 1.
анологично вторым способом
class TMasegeList(object):
_x = []
def getx(self,i): return self._x[i]
def setx(self,i, value): self._x[i] = value
def delx(self): del self._x
x = property(getx, setx, delx, "Documentation")
def add(self,value):
self._x.append(value)

Maseges = TMasegeList()
Maseges.add('mamamia')
a = Maseges.x[0]
print(a)
такая-же ошибка



Офлайн

#2 Авг. 6, 2011 00:04:35

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

property list

class C(object):
_x = []
@property
def x(self):
return self._x
@x.setter
def x(self, i, value):
self._x[i] = value
@x.deleter
def x(self):
del self._x
def add(self,value):
self._x.append(value)

Maseges = C()
Maseges.add('mamamia')
a = Maseges.x[0]
print a



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version