我有一个很多Python文件的项目。某些文件中有一定数量的变量,我喜欢在其他文件中使用。例如,如果在Python中的文件之间共享变量的最简单方法?
var=10
在f1.py
定义,什么是我可以调用/使用其他文件"var"
不使用from f1 import var
方式?
我试过使用global
,但它不适用于所有文件。 谢谢!
我有一个很多Python文件的项目。某些文件中有一定数量的变量,我喜欢在其他文件中使用。例如,如果在Python中的文件之间共享变量的最简单方法?
var=10
在f1.py
定义,什么是我可以调用/使用其他文件"var"
不使用from f1 import var
方式?
我试过使用global
,但它不适用于所有文件。 谢谢!
您可以用名称范围做到这一点:
import f1
print(f1.var)
10
f1.var = 20
那么就应该改变所有文件var
这是使用变量,import
。
谢谢,但我得到一个错误“AttributeError:'module'object has no attribute'var'”。由于有很多变量,如果有更好的方法调用“var”而不是“f1.var” ”。再次感谢 – Curiosity
你可以用'var = f1.var'重新分配它。但是,你可以在当前文件中使用它,但是如果你修改它,只在该文件中改变的变量不在文件f1中 –
这不会改变除键入导入行的文件以外的任何地方的值。 -1 –
在一个文件中声明所有全局变量,即my_settings.py
,然后在其他脚本中声明import
。
看到这个问题,它是公认的答案的详细信息: Using global variables between files in Python
大多数我遇到的这个问题,我用不同的方法的时代:
所以当程序启动时,这个类被实例化,然后传递给不同的模块。这也使得它灵活,因为当你为这个类添加一个额外的字段时,不需要改变任何参数。
class session_info:
def __init__(self, shared_field1=None, shared_field2=None ....):
self.shared_field1 = shared_field1
self.shared_field2 = shared_field2
def function1(session):
session.shared_field1 = 'stilton'
def function2(session):
print('%s is very runny sir' % session.shared_field1)
session = session_info()
function1(session)
function2(session)
应打印: “斯蒂尔顿奶酪是非常松软先生”
为什么你不想使用'import'? – BrenBarn
而不是暴露一个变量,而是考虑使用setter和getter函数。看一下'property()'内置函数,它给用户一个访问变量的错觉。 – cdarke