Есть ли способ ссылаться на экземпляр класса из его метакласса каждый раз при создании экземпляра? Я полагаю, что для этой цели мне следует использовать метод dunder _call_ внутри метакласса.
У меня есть следующий код:
class meta(type):
def __call__(cls):
super().__call__()
#<--- want to get an object of A class here every time when instance of A class is created
class A(metaclass = meta):
def __init__(self, c):
self.c = 2
def test(self):
print('test called')
a1=A()
a2=A()
a3=A()
Кроме того, почему, когда я реализую метод __call__
внутри метакласса, все созданные экземпляры моего класса становятся NoneType, однако при переопределении __call__
я использовал super().__call__()
?
Например, a4.test()
возвращает AttributeError: объект «NoneType» не имеет атрибута «тест»
Конечно, потому что ваш метод
__call__
возвращаетNone