我刚刚开始在一个新的 Python 后端项目中工作,并决定重用我过去构建的旧项目中的一些代码。那时,VSCode 不会抱怨这个问题,但现在却抱怨了:
代码使用 SQLAlchemy 会话与数据库对话,如下例所示:
def get_by_username(self, username:str) -> UserModel:
user: UserModel
with Session(self.DB_ENGINE, future=True) as session, session.begin():
userDB : UserORM | None = None
try:
userDB = session.query(UserORM).filter(UserORM.username == username).first()
...
VSCode 假定会话对象为 None,因此指示错误:
Object of type "None" cannot be used with "with" because it does not implement __enter__
Attribute "__enter__" is unknownPylancereportGeneralTypeIssues
Object of type "None" cannot be used with "with" because it does not implement __exit__PylancereportGeneralTypeIssues
(variable) session: Session
代码运行没有任何问题,但错误消息很烦人。
如何在不忽略输入的情况下指示会话对象不是 None?
非常感谢!
您应该使用 SQLalchemy 进行 VS 代码扩展。类似这样的问题可以帮忙解答很多。它基本上是一个经过 SQLAlchemy 文档训练的 RAG 系统,您可以通过 VS Code 进行查询。 https://marketplace.visualstudio.com/items?itemName=buildwithlayer.sqlalchemy-integration-expert-jYSzG https://www.loom.com/share/2c43928aeed14e6aa24092f73d42629a?t=0