之前可能已经提出过这个问题,但我在Stack Overflow上发现的其他帖子主要涉及更改全局变量和导入函数等。当我快速搜索时,我的措辞可能不正确。
我开始用Python编写代码,我想知道最有效和最恰当的方法是做什么。
我有一个父模块,我正在导入其他模块。它具有以下结构:
# some import statements go here
# Constants that need to be the same for all objects
a = 1
b = 2
...
# A class with some useful functions
class Def():
def __init__(self):
...
我正在其他一些模块中导入此模块,以使用Def类中的函数。但我也希望所有导入它的模块都能访问我在类外声明的常量。
我在外面宣布它们,因为我想在那个模块中调用它们的地方使用这些值。我不想将它们附加到对象上(并且必须将它们称为self.a,self.b等),并且它们将是我正在使用的每个模块中的常量。
我正在考虑的一些选项是:
from parentmodule import *
我不确定这些中的任何一个是否有效,以及是否有标准方法可以做到这一点。由于常量的性质,在执行后者时变量名称的冲突不会成为问题。在我的程序环境中,它们是具有唯一名称的物理常量,不会用于表示其他变量。
如果问题太基本/以前被问过,请道歉,谢谢你的帮助。
答案 0 :(得分:1)
导入整个模块将充当一种命名空间,在我看来,这是最简单的方法。所以你有" mystuff.py":
a = 1
b = 2
def MyFunc():
....
然后在你的其他模块中:
import mystuff
print mystuff.a
print mystuff.b
mystuff.MyFunc()
您的解决方案:
from mystuff import *
工作,但可能是冲突,我的想法并不是人们所认为的" pythonic。"