如何在python中正确编写全局变量?
我正在使用sqlalchemy进行连接池,我想让引擎对象对其他模块可用。我为其他模块所需的实用程序创建了一个模块,如下所示:如何在python中正确编写全局变量?,python,sqlalchemy,global-variables,Python,Sqlalchemy,Global Variables,我正在使用sqlalchemy进行连接池,我想让引擎对象对其他模块可用。我为其他模块所需的实用程序创建了一个模块,如下所示: from sqlalchemy import [...] _engine = create_engine(url) _meta = MetaData() _meta.bind = _engine def get_meta(): return _meta def get_engine(): return _engine 我以前尝试过在没有
from sqlalchemy import [...]
_engine = create_engine(url)
_meta = MetaData()
_meta.bind = _engine
def get_meta():
return _meta
def get_engine():
return _engine
我以前尝试过在没有前导下划线的情况下这样做,但没有成功。我的印象是,主下划线只是python中私有变量的常规样式,但显然它会影响代码的解释方式?无论如何,我只是想让一个特定的live engine对象(控制对数据库连接池的访问)可供其他模块使用,并想知道这样做的最佳实践,谢谢。来自:
\u单个\u前导\u下划线
:弱“内部使用”指示器。例如,M import*中的不会导入名称以下划线开头的对象
因此,是的,解释器处理带前导下划线的标识符与不带前导下划线的标识符不同。来自:
\u单个\u前导\u下划线
:弱“内部使用”指示器。例如,M import*
中的不会导入名称以下划线开头的对象
因此,是的,解释器处理带前导下划线的标识符与不带前导下划线的标识符不同。什么不起作用?你想发生什么?你的问题是什么?这是关于下划线还是关于生成一个?我的问题是,这段代码是否是实现上述目标的最佳/正确方法:让一个特定的引擎对象可供其他模块使用,以便它们都可以通过同一个引擎对象访问数据库池。什么不起作用?你想发生什么?你的问题是什么?我的问题是,这段代码是否是实现上述目标的最佳/正确方法:让一个特定的引擎对象可供其他模块使用,以便它们都可以通过同一个引擎对象访问数据库池。