全球名称' test'没有定义

时间:2018-03-23 13:56:24

标签: python python-2.7

我有两个文件.py文件A和B,

文件A使用文件B和文件B中的方法,使用文件A中的方法

档案A

from file_b import *

def abc():
# something
   cba()

档案B

from file_a import *

def cba():
# something
   abc()

如果我尝试为文件A运行脚本,我会收到错误

  

全球名称' cba'未定义

如果我将导入更改为:

import file_a

file_a.abc()

我的脚本正常运行

可以从file_a import *使用吗?

我做错了吗?

1 个答案:

答案 0 :(得分:1)

我有3个Python PyGame文件。

  1. settings.py
  2. sprites.py
  3. game.py
  4. 在设置中,我有全局变量和一些其他有用的常量。 如果我使用

    将我的设置导入我的精灵文件
    from settings import *
    

    然后在我的主文件game.py中,我只是导入我的精灵。 如果我使用

    from sprites import *
    

    然后我正在设置精灵和我的设置文件的内容。 如果我要说

    from sprites import player
    from sprites import enemy
    

    然后我不会获得设置的内容,即使它们被导入到NameSpace ...或文件中。如果我想访问我的game.py文件中代表颜色的元组,我必须导入它们。

    我希望这可以解决您遇到的问题,或者更好地了解为什么会发生这种情况,如第一条评论所述 - 这是一个循环引用。