Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中正确编写全局变量?_Python_Sqlalchemy_Global Variables - Fatal编程技术网

如何在python中正确编写全局变量?

如何在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 我以前尝试过在没有

我正在使用sqlalchemy进行连接池,我想让引擎对象对其他模块可用。我为其他模块所需的实用程序创建了一个模块,如下所示:

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*
中的
不会导入名称以下划线开头的对象


因此,是的,解释器处理带前导下划线的标识符与不带前导下划线的标识符不同。

什么不起作用?你想发生什么?你的问题是什么?这是关于下划线还是关于生成一个?我的问题是,这段代码是否是实现上述目标的最佳/正确方法:让一个特定的引擎对象可供其他模块使用,以便它们都可以通过同一个引擎对象访问数据库池。什么不起作用?你想发生什么?你的问题是什么?我的问题是,这段代码是否是实现上述目标的最佳/正确方法:让一个特定的引擎对象可供其他模块使用,以便它们都可以通过同一个引擎对象访问数据库池。