Это называется замыканием (функцией внутри функции) и не совсем ведет себя так, как вы просите.Поскольку функции не похожи на классы, у них нет понятия «экземпляры», и поэтому любые объекты, внутренние для функции, не доступны извне, если они не return
редактируются функцией.
NB, InМетоды Python - это, по сути, функции, связанные с классом.
Это был бы лучший шаблон:
class A(object):
def method(self, val):
if not val:
return self.submethod()
return "Method action"
def submethod():
return "Submethod action"
Вы можете получить доступ к внутреннему состоянию замыканий, но это не то же самое, что атрибут-стиль доступа вы думаете.Лучше избегать их, пока вы полностью не поймете, как работают пространства имен Python и прочее, а также хлам.