У меня есть два класса
class A() class B(A)
Иногда экземпляр класса A создается нормально, а иногда через класс B с помощью
super(B, self).__init__()
Можно ли определить, был ли вызван метод init класса Aот Б или снаружи?
Вы можете сравнить type(self) с A:
type(self)
A
class A(object): def __init__(self): if type(self) == A: print('From A') else: print('From elsewhere') class B(A): pass A() B()
Вывод:
From A From elsewhere
Это единственный раз, когда вы хотите type сверх isinstanceхотя я не уверен почему вы хотите сделать это в первую очередь.
type
isinstance