我想使用字符串从一个文件访问变量到其他文件中的类。
这是我的代码。
档案a.py
:
aa = 12
m = test('aa')
档案class.py
:
class test:
def __init__(self,string):
try:
self.variable = globals()[string]
except KeyError:
print('there is no variable named ' + string)
以上test.py
代码返回序列字符串'没有名为blrblr'的变量。我认为如果Python具有词法范围,那么调用test()
类时的范围应与'aa'
具有相同的范围,但事实并非如此。我该如何解决这个问题?
答案 0 :(得分:1)
globals()
会返回当前模块的属性字典。访问不同文件中代码的常用方法是使用import
。例如
import a
现在,您可以直接在代码中访问a.py
中的变量:
print(a.aa)
虽然有办法,但不建议尝试使用字符串作为变量名。相反,您应该使用数据结构,例如字典。