尽管进行了星号导入,但仍未从另一个文件访问变量

Not accessing variable from another file in spite of star import

我有一个文件 "screenDisplay" 与 "globalvars." 位于同一目录中 globalvars 有一个名为 "gameIsMuted." 的布尔值 在 screenDisplay 的顶部我有 from globalvars import *。如果我在 screenDisplay 中使用的实例中不使用 "globalvars.gameIsMuted",那么我会得到 UnboundLocalError: local variable 'gameIsMuted' referenced before assignment。如果我确实使用它,那么我会得到 NameError: name 'globalvars' is not defined。我检查了拼写。我该怎么做才能解决这个问题?

如果您想使用全局变量,请像这样导入它们:

from globalvars import *

或者(可能更好):

import globalvars

引用变量的方式发生变化:

文件:globalvars.py

gameIsMuted = False
guruMeditationError = False
isukuremuSukiDesu = True

两个不同的用法示例:

文件globals_test1.py:

from globalvars import *

print( "Muted ........ " + str( gameIsMuted ) )
print( "Meditation ... " + str( guruMeditationError ) )
print( "Icecream ..... " + str( isukuremuSukiDesu ) )

文件globals_test2.py:

import globalvars

print( "Muted ........ " + str( globalvars.gameIsMuted ) )
print( "Meditation ... " + str( globalvars.guruMeditationError ) )
print( "Icecream ..... " + str( globalvars.isukuremuSukiDesu ) )

注意用法语法的不同。如果代码使用 from blah import * 语法,则不需要限定符名称。但是对于简单的import blah,使用前缀blah.var_name

如果您不知道使用哪一个,或者没有偏好,请使用后一种形式。这使得代码更容易理解,因为它更清楚变量的来源。