如何使用__import__函数执行from ... import*?原因是我只在运行时知道文件的名称,并且在该文件中只有1个类.
如果有人在阅读此内容时想要对标题中的问题进行实际答案,则可以通过操作vars()字典来完成.是的,在大多数情况下这样做是愚蠢的,但我可以想到实际上非常有用/酷的用例(例如,您可能想要一个静态模块名称,但希望模块的内容来自其他地方那是在运行时定义的.和IMO类似,比django.conf.settings你熟悉它的行为更好
module_name = "foo"
for key, val in vars(__import__(module_name)).iteritems():
if key.startswith('__') and key.endswith('__'):
continue
vars()[key] = val
Run Code Online (Sandbox Code Playgroud)
这会将模块foo.py中的每个非系统变量导入当前命名空间.
谨慎使用:)
| 归档时间: |
|
| 查看次数: |
5175 次 |
| 最近记录: |