0
可以说我有以下的配置文件:Python的动态导入和改变一个变量
config.py:
x = 2
y = x * 2
我想文件main.py在导入此 ,最好使用load_source命令,但我也希望能够在导入时更改x的值,以便x中的更改传播到config.py中的其他变量。例如,我想下面的代码,打印6,而不是4
main.py:
import imp
config = imp.load_source('', 'config.py')
config.x = 3
print config.y
什么是做到这一点的最好方法是什么?我知道我可以编写config.py中的函数来为我做这件事,但我更喜欢配置只是简单的变量定义。
为什么不直接导入配置和操作变量这样。无论哪种方式,他们是全球性的 –
即使你导入它,当你改变x时y的值不会改变,因为它定义在x之后,并且x的改变不会改变y,除非它被定义为一个列表或者其他东西 – Amin
这不是那么有效。当你说y = x * 2不是指针时,Python使用动态转换。即使在脚本中,如果您打印(y),则定义y,然后设置x = 1并再次打印(y),y的意义相同。你可以让y成为一个函数,或者像布伦特所建议的那样在config中创建一个类。 –