我有一个模块作为单例类。在那个单例类模块中,我想导入其他模块,这不是单例。是否可以导入?
当我导入模块并运行到单件模块时,我得到错误,单件模块未定义。
例如: first_file.py:
class first(object):
def __init__(self):
print "first class"
second_file.py
from Libs.first_file import * #here libs is my folder /module
@singleton
class second(self):
def __init__(self):
print "Second class"
我跑的时候: python second_file.py
我收到错误NameError:name' second_file()'没有定义 但当注释掉import时,则second_file()模块正在按预期工作。
谢谢,
答案 0 :(得分:0)
也许您应该提供更多详细信息。例如,@singleton
我对您提供的代码进行了测试。我自己添加了装饰器,并将class second(self):
更改为class second(first):
,如下所示:
first_file.py:
class first(object):
def __init__(self):
print "first class"
second_file.py:
from first_file import * # here libs is my folder /module
def singleton(class_):
instances = {}
def getinstance(*args, **kwargs):
if class_ not in instances:
instances[class_] = class_(*args, **kwargs)
return instances[class_]
return getinstance
@singleton
class second(first):
def __init__(self):
print "Second class"
if __name__ == '__main__':
test = second()
test1 = second()
当我运行python second_file.py时:
Second class
[Finished in 0.0s]
似乎没问题。 也许我没有明白你的问题,但希望它有所帮助。