猿问

尽管导入了星号,但不从另一个文件访问变量

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


jeck猫
浏览 169回答 1
1回答

FFIVE

如果你想使用全局变量,要么像这样导入它们:from globalvars import *或者(可能更好):import globalvars变量被引用的方式然后改变:文件: globalvars.pygameIsMuted = FalseguruMeditationError = FalseisukuremuSukiDesu = True两个不同的用法示例:文件 globals_test1.py:from globalvars import *print( "Muted ........ " + str( gameIsMuted ) )print( "Meditation ... " + str( guruMeditationError ) )print( "Icecream ..... " + str( isukuremuSukiDesu ) )文件 globals_test2.py:import globalvarsprint( "Muted ........ " + str( globalvars.gameIsMuted ) )print( "Meditation ... " + str( globalvars.guruMeditationError ) )print( "Icecream ..... " + str( globalvars.isukuremuSukiDesu ) )请注意用法语法的差异。如果代码使用该from blah import *语法,则不需要限定符名称。但是对于 simple import blah,使用了前缀blah.var_name。如果您不知道使用哪一种,或者没有偏好,请使用后一种形式。这使代码更易于理解,因为它更清楚变量的来源。
随时随地看视频慕课网APP

相关分类

Python
我要回答