class InterfaceBase(object):
@staticmethod
def create(*args): raise NotImplementedErrorfrom interfacebase import InterfaceBase
from implementation import CImplementation # импортим имплементацию что бы (см. ниже)
# с этим инклюдом у нас и открывается кольцо
class IInterface(InterfaceBase):
def create(*args): return CImplementation() # через статик интерфейса её можно было создать
def method(self): raise NotImplementedError# class IInterface(): pass # forward declaration не работает :(
from interface import IInterface # в таком случаи импортим (тут то и замыкается кольцо)
class CImplementation(IInterface): #Наследуемся от интерфейса для полиморфизма метода method
def method(self): print("CClass::method()")Traceback (most recent call last):
File "main.py", line 1, in <module>
from interface import IInterface
File "/api/interface.py", line 2, in <module>
from implementation import CImplementation
File "/src/implementation.py", line 1, in <module>
from interface import IInterface
ImportError: cannot import name 'IInterface'
class IInterface(): pass
cmake -G "MinGW Makefiles - генерирует все без проблем. Тогда ещё больше вопросов :)