У меня есть интерфейс под названием EmailService:
from zope.interface import Interface
from src.utils.Email import Email
"""
@author:
"""
class EmailService(Interface):
def sendMail(self, mail):
raise NotImplementedError
и класс EmailServiceImpl, который представляет реализацию этого интерфейса:
from zope.interface import implementer
from src.services.EmailService import EmailService
from lbc.log_conf import LoggerManager
"""
@author:
"""
@implementer(EmailService)
class EmailServiceImpl():
def __init__(self):
logger = LoggerManager.__call__().get_logger()
logger.info("Email Service Implementation")
def sendMail(self, mail):
print("send mail")
Я хочу, чтобы мой класс main зависел от абстракций
class main():
def __init__(self):
self.service = EmailService
def sendMail(self):
self.mail = Email("test","test","test","test")
self.service.sendMail(self,self.mail)
но когда я пытаюсь внедрить свой интерфейс, у меня появляется эта ошибка:
AttributeError: у объекта 'InterfaceClass' нет атрибута 'sendMail'