对于第3点和第4点,我想你是在寻找像from life import life # life represents life.life
from garlicsim_lib.simpacks import prisoner
但是,不建议这样做,因为这会使您或阅读代码的人更难快速了解prisoner代表什么(它来自哪里的模块?您必须查看代码的开头以获取此信息)。在
对于第1点,您可以:
^{pr2}$
对于第2点,给定字符串“garlicsim”_lib.simpacks.囚犯'时,可以通过以下方式获取它引用的对象:obj = eval('garlicsim_lib.simpacks.prisoner')
这假设您已使用导入模块import garlicsim_lib # or garlicsim_lib.simpacks
如果你想让它自动完成,你可以按照import imp
module_name = address_string.split('.', 1)[0]
mod_info = imp.find_module(module_name)
try:
imp.load_module(module_name, *mod_info)
finally:
# Proper closing of the module file:
if mod_info[0] is not None:
mod_info[0].close()
这只在最简单的情况下有效(例如,garlicsim_lib.simpacks需要在garlicsim_lib中可用)。在
然而,以这种方式编码是非常不寻常的。在