【发布时间】:2017-08-08 15:17:32
【问题描述】:
我有以下结构:
app/
test1.py
test/
__init__.py
test2.py
我在test1.py 中导入test2.py 并使用来自test2.py 的函数
代码如下:
test1.py:
import test.test2 as T
T.hello()
...
T.hello1()
test2.py:
d = {}
def hello():
print('hi')
global d
d['1'] = 1
def hello1():
print('hi1')
global d
print(d) # prints{'1': 1}
test1.py 将调用hello 并在一段时间后调用hello1。我想在hello 中填充dict d 并在hello1 中使用它。使用global 可以正常工作,但有什么更好的方法可以做到这一点,因为我想避免使用globals。我不想将d 从hello 传递到test1 中的caller,然后从那里返回到hello1。
我可以做些什么来避免globals。我正在使用python 3.5。
【问题讨论】:
-
你有什么理由避免将两个 hello 函数放在一个类中吗?对于具有实例变量 self.d 的类来说,两个具有共享状态的函数似乎是一个明显的用例。
-
test1.py文件将被进一步导入(与我用于简化的结构相反)所以我还必须在test1.py中添加一个类,我想知道是否有还有什么办法吗?
标签: python python-3.x function global-variables