мне нужно понять следующее поведениепрохождение * арг/** kwargs в производном классе
Traceback (most recent call last):
File "FactoryTest.py", line 7, in <module>
swift = FactoryLogs.get_service('freezer')
File "/home/iob/Devel/elastic_tests/elasticFactory.py", line 12, in get_service
return Factory.create_factory(service)
File "/home/iob/Devel/elastic_tests/factory.py", line 11, in create_factory
return FreezerLogs()
File "/home/iob/Devel/elastic_tests/elasticFactory.py", line 68, in __init__
super(FreezerLogs, self).__init__()
TypeError: must be type, not classobj
Это возникает, когда я пытаюсь создать экземпляр производные и вызвать метод, определенный в базовом классе ,
class A:
def __init__(self):
self.att1='a'
def _foo(self):
self.bar(*args, **kwargs)
class B(A):
def __init__(self):
super(B,self).__init__()
def bar(self, *args, **kwargs):
#code
Затем я создаю экземпляр типа B, и я вызываю панель. Я чувствую, что здесь что-то не так, и мне нужно кое-что, чтобы просветить меня, потому что, читая документы и другие ресурсы в Интернете, я чувствовал себя более смущенным.
Вы вызываете функцию (бар), который не существует для класса А. Он существует только для класса B, так что вы можно только назвать это там. – Nallath