我正在尝试做的是创建一个带有类的模块;和一个函数,它是该类的接口;以及此函数中的动态变量名,它指向该类的实例。这个函数和类本身应该在一个单独的模块中,它们的用法应该在不同的python文件中。
我认为,当您查看我的代码时,更容易理解我想要做什么:
这是first.py
:
class FirstClass:
def setID(self, _id):
self.id = _id
def func(self):
pass
# An 'interface' for FirstClass
def fst(ID):
globals()['%s' % ID] = FirstClass(ID)
return globals()['%s' % ID]
现在,如果我直接调用fst('some_text')
,first.py
结果几乎是我梦寐以求的,因为以后,任何时候我写some_text.func()
,它都会调用func()
,因为some_text
它指向FirstClass
.
但是,当second.py
是这样的时候:
from first import fst
fst('sample_name')
sample_name.func()
那么python的答案将是这样的:
NameError: name 'sample_name' is not defined.
这有点合理..所以我的问题是:是否有“更漂亮”的方法或完全不同的方法来做到这一点?还是我必须在我的代码中更改一些小东西才能完成这项工作?
谢谢!