通过字典值在Python中引用另一个文件的变量

1 投票
2 回答
1061 浏览
提问于 2025-04-18 15:25

我用一个简单的例子来解释这个情况。我有一个文件,里面有一些字典,像这个例子:

文件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"])

撰写回答