2016-02-17 89 views
1

说我有一个包含以下内容的配置文件config.py:克隆或复制蟒蛇进口

a = 1 

现在在另一个文件中我做的:

import config 
x = config 
x.a = 2 

现在,如果你print x.a你会得到2,但如果你print config.a,你也将得到2,因为xconfig是相同的指针。

有没有办法克隆或复制到X配置,以便我将有一个独立的实例x的配置字段?我知道类,但我试图在这里避免他们。我也尝试过使用python的copy模块,在这里不起作用。

+0

你为什么想要避免上课? – Forge

+0

它更容易让最终用户更新配置文件,但是如果我可以找到这个简单的解决方案 –

+0

,我可能会去python configparser你不应该创建模块的实例,这是类的用途。 – Forge

回答

0

是的。 Python的copy模块正是你在这里需要的。改变你的代码看起来像这样:

import copy 
import config 
x = copy.copy(config) 
x.a = 2 
config.a = 3 

现在xconfig会改变彼此独立。

+0

你有没有试过这个。我使用python 2.7.something,它不起作用。 AttributeError:'NoneType'对象没有属性'update' –