【问题标题】:Python global dict across different file script跨不同文件脚本的 Python 全局字典
【发布时间】:2013-02-26 08:37:11
【问题描述】:

你好。我正在尝试使用在main.py 中创建的全局dict,它在functions.py 中调用。 在我的 ma​​in.py 我有:

import sys,os,...
import functions.py #import my second file

matrix = {}
matrix_do_something
search_the_matrix(value) #which is defined in functions.py

#FILE: functions.py
def search_the_matrix(value):
    global matrix
    if value in matrix:
        return True
    else:
        return False

我收到此错误:

NameError: global name 'matrix' is not defined

我在stackoverflow 上阅读了一个解决方案,它说将所有内容放在一个全局文件中,然后从每个文件 global.matrix[value] 中调用,但我不想要这个。我只想称它为矩阵并将其视为我的全局矩阵。这可能吗? 提前谢谢你

【问题讨论】:

  • 你是从main.pyfunctions.py)导入matrix吗?
  • 另外,你不是import functions.py,你是import functions

标签: python file dictionary global


【解决方案1】:

在functions.py中你必须导入它

from main import matrix

虽然我想为我的模块取一个比 main 更好的名称。

如果您希望一个对象在模块/文件中可用,您需要在那里创建它或从其他地方导入它。

【讨论】:

  • 谢谢!我现在觉得很笨。我虽然可以使用该导入命令仅导入函数和文件。
  • 每种语言都有自己的全局命名空间概念,所以不用担心。 Python 有一个每个模块的命名空间。并且模块内的每个函数都在它自己的闭包内。一般不需要使用global关键字
猜你喜欢
  • 2015-09-27
  • 2011-11-19
  • 2013-11-15
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 2014-09-12
  • 1970-01-01
相关资源
最近更新 更多