Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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 - Fatal编程技术网

Python 避免在任何地方传递会话

Python 避免在任何地方传递会话,python,sqlalchemy,Python,Sqlalchemy,在阅读了关于如何更好地利用会话的SQLAlchemy文档之后,我发现自己将会话传递给了我的所有类方法。 如何在会话中仍然使用上下文管理器并避免到处传递它们? 而不是像这样的方法 def get_query_配置(自我,数据库): 我想留下来 def get_查询_配置(自身): 我不确定我明白你的意思,但是为什么你的类中没有一个属性设置为你的会话呢?比如self.session?因为我不知道它是否可以与上下文管理器一起使用?如果你不知道会话是否存在,这基本上就是说一个变量改变了它的值,你不想传

在阅读了关于如何更好地利用会话的SQLAlchemy文档之后,我发现自己将会话传递给了我的所有类方法。 如何在会话中仍然使用上下文管理器并避免到处传递它们?

而不是像这样的方法

def get_query_配置(自我,数据库):

我想留下来

def get_查询_配置(自身):


我不确定我明白你的意思,但是为什么你的类中没有一个属性设置为你的会话呢?比如
self.session
?因为我不知道它是否可以与上下文管理器一起使用?如果你不知道会话是否存在,这基本上就是说一个变量改变了它的值,你不想传递新的值。如果要确保会话在那里,只有两种选择:要么总是传递它,要么类的实例随上下文管理器一起消亡(这几乎是相同的,因为之后必须使用新值重新初始化)。在您的情况下,不完全清楚您在做什么,但通常是这样,您需要传递会话。@zvone,如果它没有传递,只是类的一个属性,会发生什么?