不从另一个文件访问变量,尽管有star imp

2024-10-03 00:30:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件“screenDisplay”和“globalvars”在同一个目录中。globalvars有一个叫做“Gameismute”的bool。在screenDisplay的顶部我有from globalvars import *。如果我在screenDisplay中使用的实例中没有使用“globalvars.gameismute”,那么我得到UnboundLocalError: local variable 'gameIsMuted' referenced before assignment。如果我使用它,那么我得到NameError: name 'globalvars' is not defined。我已经检查了拼写。我能做些什么来解决这个问题


Tags: 文件实例fromimport目录localvariablebool
1条回答
网友
1楼 · 发布于 2024-10-03 00:30:52

如果要使用全局变量,请按如下方式导入它们:

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

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

相关问题 更多 >