Мне просто интересно, как на самом деле объяснить, почему это действительно python.
foo.py
class Foo:
def __init__(self):
if type(self).__name__ in MAP.keys():
print('WOO HOOO')
self.Bar = True
MAP = {'Foo': Foo}
test
>>> from foo import *
>>> x = Foo()
WOO HOOO
Я бы подумал, что MAP dict при ссылке в конструкторе будет недействительным. Это связано с тем, что конструктор проверяется только во время выполнения?