有没有办法在importee中获取导入器的变量?

时间:2014-10-29 08:05:45

标签: python

说我有两个python文件

 # importer.py
 parameter = 4
 import importee

 # importee.py
 print parameter

我可以或如何在 importee.py 访问 importer.py ' parameter

我正在使用丑陋的工作,借用(和污染)sys

 # importer.py
 import sys
 sys.parameter = 4
 import importee

 # importee.py
 print sys.parameter

太难看了。 寻找更好的解决方案。

1 个答案:

答案 0 :(得分:4)

实现我想要实现的目标的推荐方法是在importee中声明函数,并调用它,例如:

# importer.py
import importee
importee.call_me(4)

# importee.py
def call_me(parameter):
    print(parameter)

最好避免在全局范围内执行任何操作。特别是print()任何事情,但我想你的最小例子与你的真实用例不符:)。


顺便说一句,你提到的丑陋工作实际上等同于使用单独的配置模块。例如:

# importer.py
import config
config.param = 4
import importee

+

# importee.py
import config
print(config.param)

+

# config.py
param = 7 # some default

它仍然没有接近漂亮,但至少避免了系统模块的损坏。