2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
根據(jù)Python 的文檔:
在 Python 中,僅在函數(shù)內(nèi)部引用的變量是隱式全局變量。如果在函數(shù)體內(nèi)的任何地方為變量賦值,則假定它是局部變量,除非明確聲明為全局變量。
因此,您不能names從另一個(gè)文件導(dǎo)入您的列表的原因是因?yàn)閚ames它在您的get_pokemon_stats函數(shù)范圍內(nèi)并且它不是一個(gè)全局變量。
您可以names將其設(shè)為 global 將其放在您的函數(shù)之外,并將其聲明為 global 以在您的函數(shù)內(nèi)使用:
...
names = []
def get_pokemon_stats():
...
global names
...
但是,如果您真的想這樣做,您應(yīng)該仔細(xì)考慮。names一旦您調(diào)用您的get_pokemon_stats函數(shù),將只包含實(shí)際值。盡管如此,如果您不真正了解局部和全局變量的工作原理以及何時(shí)應(yīng)該使用它們,則應(yīng)避免僅全局聲明變量。
我建議您考慮改為執(zhí)行以下代碼:
from backend import get_pokemon_stats
_, _, word, _ = get_pokemon_stats()
print (word)

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
您需要調(diào)用該get_pokemon_stats函數(shù)。它返回四個(gè)值,第三個(gè)值是names。
import backend
name_to_stats, id_to_name, names, pokemon_by_type = backend.get_pokemon_stats()
print(names)
添加回答
舉報(bào)