尽管有明星导入,但不能从其他文件访问变量

问题描述 投票:0回答:1

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

python import pygame python-import public
1个回答
0
投票

如果要使用全局变量,请将它们导入为:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.