Может случиться много разных вещей. Самое основное:
Содержимое блока class
выполняется при первом чтении.
Чтобы увидеть это в действии, этот пример:
class Foo(object):
print "bar"
def __init__(self):
print "baz"
Будет печатать bar
при импорте модуля.
Если для класса определен метакласс, функция метаклассов __new__
будет запущена после запуска блока классов.
Пример:
class MyMeta(type):
def __new__(mcs, name, bases, kwargs):
print "I'm the metaclass, just checking in."
return type.__new__(mcs, name, bases, kwargs)
class Foo(object):
__metaclass__ = MyMeta
print "I'm the Foo class"
Выход:
I'm the Foo class
I'm the metaclass, just checking in.
Я уверен, что другие биты тоже могут работать, это как раз то, с чем я знаком.