Python 如何检查作用域_会话是否已关闭

Python 如何检查作用域_会话是否已关闭,python,session,sqlalchemy,Python,Session,Sqlalchemy,如果一个scoped_会话已经关闭,有没有办法检查Python的SQLAlchemy?换句话说,检查是否已调用会话.close方法 示例: session_maker = sessionmaker() session_maker.configure(...) session = scoped_session(session_maker) hasclosed = f(session) #should return False session.close() hasclosed = f(se

如果一个
scoped_会话
已经关闭,有没有办法检查Python的SQLAlchemy?换句话说,检查是否已调用
会话.close
方法

示例

session_maker = sessionmaker()
session_maker.configure(...)

session = scoped_session(session_maker)

hasclosed = f(session) #should return False

session.close()

hasclosed = f(session) #should return True

显然,可以重写
close
方法,使其保持这种状态,但我想知道是否有对此的内置支持。

是否要解释为什么要这样做?您可以调用,甚至可以调用registry.has()。@QuentinPradet:因为我想确保调用
close
。对于创建的每个会话,都会启动一个线程,定期检查会话是否已关闭。如果没有,并且达到超时,会话将由该线程自动关闭。我不熟悉sqlalchemy,但我认为作用域_会话的全部要点是它是线程本地的?而且,听起来好像你在试图修补坏代码。无论如何,remove()或registry.has()有什么问题吗?在我的例子中,我想在运行一些代码之前检查会话是否仍然有效。虽然这是针对正常会话而非
范围内的会话
,但使用
session.is\u active
成功了。