У меня есть класс A
, который должен наследовать класс B
, имя которого еще не известно на момент написания A
. Можно ли объявить A
не наследующим что-либо и добавить B
в качестве базового класса при создании экземпляра A
? Пример:
Первый файл
class B:
def __init__(self):
self.__name = "Class B"
def name(self):
return self.__name
Второй файл
class A:
def __init__(self):
self.__name = "Class A"
# At some point here, the appropriate module name and location is discovered
import sys
sys.path.append(CustomModulePath)
B = __import__(CustomModuleName)
magic(A, B) # TODO What should magic() do?
a = A()
print a.name() # This will now print "Class A", since name() is defined in B.