рассмотрим следующий код:Использование метакласса для доступа к статическим атрибутам подкласса
def print_name(*args, **kwargs):
cls = type(*args, **kwargs)
print "hello " + cls.name
return type.__new__(*args, **kwargs)
class B(object):
__metaclass__ = print_name
name = 'animal'
class C(B):
name = "zebra"
class D(B):
name = "pig"
То, что я пытаюсь достичь имеют функцию print_name называться на B суб классов (C и D) и сделайте он печатает статический атрибут имя. Таким образом, желаемый результат должен выглядеть следующим образом:
animal
zebra
pig
Спасибо!