Следующий код является примером:«Необъявленная переменная» декларация в питона
class A(object):
def f(self):
pass
A.f.b = 42
Как эта переменная выделяется? Если я объявляю переменные A.f.a, A.f.b и A.f.c, я создаю 3 разных объекта A? Может ли кто-нибудь объяснить, что происходит в памяти (поскольку это не похоже на что-то, легко кодируемое на C)?
Вы проверили этот код? вы не можете добавить член к функции. Но вы можете сделать 'A.b = 42', что добавит переменную класса в' A'. –
Да, вы можете. Вы добавляете атрибуты к связанной функции 'f'. – IanAuld
@IanAuld: казалось бы, что это может сработать, но не так: 'Afb = 42 AttributeError: объект instancemethod не имеет атрибута 'b'' –