Python 在两个文件之间共享一个变量?

Python 在两个文件之间共享一个变量?,python,Python,Python中有什么机制可以执行以下操作: file1.py: def getStatus(): print status file2.py: status = 5 getStatus() # 5 status = 1 getStatus() # 1 函数和变量位于两个不同的文件中,我希望避免使用全局变量。通过将变量放入模块中,您可以共享变量,而无需将其设置为全局变量。任何导入模块的人都会得到相同的模块对象,因此其内容是共享的;在一个位置所做的更改将显示在所有其他位置 notglob

Python中有什么机制可以执行以下操作:

file1.py:

def getStatus():
    print status
file2.py:

status = 5
getStatus() # 5
status = 1
getStatus() # 1

函数和变量位于两个不同的文件中,我希望避免使用全局变量。

通过将变量放入模块中,您可以共享变量,而无需将其设置为全局变量。任何导入模块的人都会得到相同的模块对象,因此其内容是共享的;在一个位置所做的更改将显示在所有其他位置

notglobal.py:

status = 0
get.py:

import notglobal

def getStatus():
    return notglobal.status
测试:

>>> import notglobal
>>> import get
>>> notglobal.status = 5
>>> get.getStatus()
5
>>> notglobal.status = 1
>>> get.getStatus()
1

代码似乎已经完全按照您所描述的那样工作了。你能澄清一下吗?你可以试着把变量放到一个模块中,然后导入这个模块。你能把它放到一个类中吗?在你的另一个文件中导入这个类。这有点狡猾。您希望避免使用全局变量,但希望某种状态以变量的形式在文件之间持续存在?这就是全球化。为了避免全局状态,您需要将其重构为一个类,保存在数据库中,等等。@Two bitalchest globals并不是Python中在两个文件之间共享内容的唯一机制。