为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

如果你想使用全局变量,要么像这样导入它们:


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 *语法,则不需要限定符名称。但是对于 simple import blah,使用了前缀blah.var_name。


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


查看完整回答
反对 回复 2021-11-23
  • 1 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信