У меня есть базовый класс, который является singleton, мне нужно наследовать это в моем другом классе, но я получаю сообщение об ошибке как TypeError: Ошибка при вызове базовых метакласса function() аргумент 1 должен быть кодом, а не strКак наследовать базовый класс с singleton в python
Может кто-то помочь в этом. Ниже приведен пример кода.
def singleton(cls):
instances = {}
def getinstance():
if cls not in instances:
instances[cls] = cls()
return instances[cls]
return getinstance
@singleton
class ClassOne(object):
def methodOne(self):
print "Method One"
def methodTwo(self):
print "Method Two"
class ClassTwo(ClassOne):
pass
Я думаю, что вы создали проблему дизайна ... Singleton означает, где будет только один, если у вас есть производный класс, у вас будет несколько (2) экземпляров базового класса. Вы уверены, что вам нужен синглтон? –
Так что 'locals()' не работает? – dsgdfg
Необходимость ClassOne и ClassTwo оба являются singleton, classOne имеет функциональность ClassTwo и немного дополнительной поддержки, поэтому мне нужно использовать методы classOne вместо ClassTwo. изменение их во всем является существенное изменение, следовательно, хотел бы реализовать с помощью наследования – santosh