Python 动态导入和更改变量
Python dynamic import and changing a variable
假设我有以下配置文件:
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 中编写函数来为我做这件事,但我更喜欢配置只是简单的变量定义。
将代码放入class:
class Config(object):
def __init__(self, x=2):
self.x = x
self.y = x * 2
然后,在你的主程序中:
c = Config(3)
print c.y
假设我有以下配置文件:
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 中编写函数来为我做这件事,但我更喜欢配置只是简单的变量定义。
将代码放入class:
class Config(object):
def __init__(self, x=2):
self.x = x
self.y = x * 2
然后,在你的主程序中:
c = Config(3)
print c.y