Обратитесь к атрибуту __self__
метода, в котором хранится экземпляр, с которым он связан, а затем используйте isinstance
:
baby = A(np.random.rand() - 0.5).func
if isinstance(baby.__self__, A):
print("It's an A! Congratulations!")
elif isinstance(baby.__self__, B):
print("It's a B...")
else:
print("What...is this...?")
Я бы отметил, строго говоря, что func
это всегда , изначально привязанный к A.func
, так как вы изменяете его в __init__
.