0

我正在使用 sqlalchemy 进行连接池,并且我想让一个引擎对象可用于其他模块。我为其他模块需要的实用程序创建了一个模块,它看起来像这样:

from sqlalchemy import [...]

_engine = create_engine(url)
_meta = MetaData()
_meta.bind = _engine

def get_meta():
       return _meta

def get_engine():
       return _engine

我以前尝试在没有前导下划线的情况下这样做,但它没有用。我的印象是前导下划线只是python中私有变量的传统样式,但显然它会影响代码的解释方式?无论如何,我只是想让一个特定的实时引擎对象(控制对数据库连接池的访问)可用于其他模块,并且想知道这样做的最佳实践,谢谢。

4

1 回答 1

4

来自PEP008

_single_leading_underscore:弱“内部使用”指标。例如from M import *,不导入名称以下划线开头的对象。

所以是的,解释器处理带有前导下划线的标识符与没有标识符不同。

于 2012-08-28T06:36:53.003 回答