具体来说,我需要从导入模块中的主模块获取一些对象和全局变量。我知道如何在父模块需要某个子模块的特定事物时找到这些东西,但我无法弄清楚如何去往另一个方向。在Python中,如何从导入的模块访问主模块的名称空间?
回答
import __main__
但是不要这样做。
为什么不这样做? – Alcott 2014-07-04 05:00:18
@Alcott:因为它可以很容易地把你的程序变成椒盐卷饼。 – 2014-07-04 05:06:47
@ IgnacioVazquez-Abrams你可以扩展吗? – 2017-06-22 21:52:11
不知道这是否是一种好的做法,但可以将需要的对象和变量作为参数传递给您在导入模块中调用的方法或类。
,我认为这会工作:
import sys
main_mod = sys.modules['__main__']
这相当于'import __main__ as main_mod'。 – 2010-09-06 08:51:31
你要找的答案是:
import __main__
main_global1= __main__.global1
但是,每当一个模块module1
从__main__
模块需要的东西,然后:
- 要么
__main__
模块应提供所有必要的数据为参数设置为module1
函数/类, - 或者您应该将需要在另一个模块中共享的所有内容导入到
__main__
和module1
中,并将其导入为import module2
。
- 1. 如何访问从Python中的调用模块调用模块名称空间?
- 2. 保留导入的模块不在Python包名称空间
- 3. 如何将Python模块导入与导入模块名称相同的包中?
- 4. 如何避免在python中导入模块时一直写模块的名称?
- 5. 如何在AngularJS中区分注入模块的名称空间?
- 6. Python指定从哪个模块导入,如果有重复的模块名称?
- 7. Python动态导入 - 如何从变量的模块名称中导入*
- 8. 导入模块命名空间类
- 9. 如何使用Javascript ES6 ES2015模块将常量直接导出/导入到导入模块名称空间?
- 10. 在python中,如何在不保留导入模块的名称空间的情况下从其他模块导入所有类?
- 11. python模块导入问题
- 12. Python模块导入问题
- 13. Python模块导入问题
- 14. 如何将子模块名称保留在Python包的名称空间之外?
- 15. 如何导入名称与包装中的模块冲突的模块?
- 16. 在Python中导入模块
- 17. 从Bash导入Python模块
- 18. 从模块导入Python
- 19. 覆盖进口,模块的显示名称导入模块
- 20. 子模块导入主模块
- 21. 从模块到Coffeescript中的全局名称空间导入函数?
- 22. 导入模块名称冲突在Django
- 23. 从oustide模块访问的模块
- 24. 的Python:悫模块和命名空间
- 25. 如何从docker导入python模块
- 26. 如何从python模块(boost.python)导入类?
- 27. 如何将函数导入到我的模块的主命名空间?
- 28. 在python中,如何通过模块名称的用户输入字符串导入模块
- 29. 无法从谷歌模块中导入模块搜索在python
- 30. 如何导入可通过url访问的python模块
嗯,好吧,我认为一定是这种情况,因为我无法在任何地方找到任何答案。底线是我不关心重复使用这些代码,我只是试图将这个项目拆分成多个文件,因此更容易找到我正在寻找的东西。说实话,我并不真正知道自己在做什么,所以这是一种学习体验,但实际上我只是希望在编辑时能够更容易地找到要编辑的代码。 – Damon 2010-09-06 02:15:05
我同意应该有一种方法来将参数传递给模块,当它被导入 - 有点像当你将它们传递给对象构造函数时。然而,我从来没有找到一个干净的方式来做到这一点。 – martineau 2010-09-06 10:14:28
我一直在寻找完全相同的原因,所以它似乎是一个典型的新手东西.. – sfranky 2012-12-15 20:33:03