Я редактировал пост в блоге и начал набирать слово property
, когда мое автозаполнение предложило завершение под названием new Property
, как ни странно, я посмотрел его и обнаружил, что это происходит из пакета автозаполнения Python.
Я нажал его, и появился этот код:
def foo():
doc = "The property."
def fget(self):
return self._
def fset(self, value):
self._ = value
def fdel(self):
del self._
return locals()
= property(**())
Я набрал Grape
там, где были курсор (и), поэтому я получил следующее:
def Grape():
doc = "The Grape property."
def fget(self):
return self._Grape
def fset(self, value):
self._Grape = value
def fdel(self):
del self._Grape
return locals()
Grape = property(**Grape())
Глядя на код, я вижу, что он создает локальную переменную с именем doc
, но, похоже, ничего с ней не делает.
Также создаются три функции: одна возвращает self._Grape
, другая добавляет новое свойство к self._Grape
, а другая удаляет self._Grape
.
Откуда взялись self
& _Grape
? Это какой-то класс, например «псевдокласс» ?
Где, почему и как используются «новые свойства» ?