通过字典值在Python中引用另一个文件的变量
我用一个简单的例子来解释这个情况。我有一个文件,里面有一些字典,像这个例子:
文件1:
dict1 = {"a": "dictA", "b": "dictB"}
dictA = {1: 100, 2:200 }
文件2:
import file1
mydict = file1.dict1["a"] #will be string "dictA"
print file1.mydict #here AttributeError:
当我尝试:
print file1.mydict
输出结果只是:
dictA
我还尝试了:
import file1
print file1.file1.dict1["a"] #here AttributeError again:
在这里我遇到了AttributeError,我想从文件1打印出dictA,但显然Python找不到mydict。我也试过这种方法:
有没有办法访问第二个字典?谢谢
2 个回答
2
在你的第一个例子中:
你在file2
里使用了在file1
中定义的东西。所以,当你写mydict = file1.dict1["a"]
的时候,mydict
是在file2
里创建的,而不是在file1
里。因此,你可以这样打印出来:
import file1
mydict = file1.dict1["a"] #will be string "dictA"
print mydict
注意在打印语句中没有file1.
。这是因为mydict
是在file2
里创建的,并没有写入到file1
。
在你的第二个例子中:
file1
里没有定义任何叫file1
的东西。如果file1
里有一个对象,并且这个对象有一个叫dict1
的属性,那么那个调用就不会出错了。
1
方法一
修改文件1:
dictA = {1: 100, 2:200 }
dict1 = {"a": dictA, "b": dictB}
尝试:
import file1
mydict = file1.dict1["a"]
方法二
不要修改文件1。可以使用eval()函数通过变量名来获取变量的值。
mydict = eval('file1.' + file1.dict1["a"])