我使用的是Python 3.3.2,我想讓我的代碼獲取一個字符串,並用它在另一個字符串中找到具有相同名稱的變量文件。讀取一個字符串,並用它來讀取另一個文件的變量的值
E.g.
File1.py包含:
global A1
A1 = ['Plain']
global A2
A2 = ['Beach']
global A3
A3 = ['Swamp']
和File2.py包含:
import File1
coords = A1
location = eval(coords)
,但不管我怎麼格式化我有什麼;我總是得到錯誤:
Traceback (most recent call last):
File "G:/Python/evaltest.py", line 2, in <module>
startLocation = A1
NameError: name 'A1' is not defined
我知道,錯誤本身是一個順序的問題,但我不知道我怎麼會叫變量之前我告訴它的字符串?
嘗試'COORDS = File.A1',但使用'eval'是一個壞主意。而且你不需要在全局範圍內使用'global'。 –
你應該花一些時間閱讀你正在做的事情。首先,你的'全球'聲明完全沒有任何影響。其次,你似乎並不瞭解導入作品的方式。第三,__DON'T USE EVAL__ - 對於動態變量訪問,你想使用'globals()'或'getattr'或者一個字典。 – l4mpi