В Python 2.7 У меня есть такое определение класса:Как использовать функцию внутри класса __init__ функции
class foo:
def __init__(self,ahg):
self.ahg=ahg
def oaf(arg):
return arg*2
self.tooAhg=self.oaf(self.ahg)
В консоли я делаю следующие утверждения
>>> bibi=foo(1)
>>> vars(bibi)
{'ahg': 1}
Я не знаю, почему vars(bibi)
не возвращается {'ahg': 1, 'tooAhg': 2}
. Пожалуйста помоги! Кроме того, еще одна неудачная стратегия заключается в следующем:
class foo:
def __init__(self,ahg):
self.ahg=ahg
self.tooAhg=self.oaf()
def oaf(self):
return self.ahg*2
Ваш второй пример работает для меня ... Кроме того, обычно не всегда полезно размещать функции внутри функций. – Zizouz212
@ Zizouz212 обертывание функции в другой функции НЕ является необычным - в модуле [functools] есть несколько примеров (https://docs.python.org/2.7/library/functools.html#functools.partial) и [декораторы ] (https://wiki.python.org/moin/PythonDecoratorLibrary) довольно полезны. – wwii
@ Zizouz212 - Мне не очень нравится определять функцию внутри другой функции. Но я не вижу причин не вызывать функцию из другой функции. – EricVonB