我有 3 个文件 a.py、b.py、c.py
我正在尝试从 a.py 中动态导入在 c.py 中定义的名为“C”的类,并在 b.py 中提供评估的名称
python a.py 当前正在捕获 NameError。我试图避免这种情况并在 b.py 中创建一个调用 C.do_int(10) 的实例
一个.py
import b
#older
#services = __import__('services')
#interface = eval('services.MyRestInterface')
# python2.7
import importlib
module = importlib.import_module('c')
interface = eval('module.C')
# will work
i = interface()
print i.do_int(10)
# interface isn't defined in b.py after call to eval
try:
print b.call_eval('interface')
except NameError:
print "b.call_eval('interface'): interface is not defined in b.py"
b.py
def call_eval(name):
interface = eval(name)
i = interface()
return i.do_int(10)
py
class C(object):
my_int = 32
def do_int(self, number):
self.my_int += number
return self.my_int
我怎样才能做到这一点?