如何解决用完整的类路径注释
使用包含类型完整路径的字符串注释变量/参数的正确方法是什么(如果有的话):
def make_json_response(obj: 'jfs.serializers.BaseModel',status=200):
"""Make a JSON response out of a Pydantic model instance.
"""
return flask.Response(
response=obj.json(),status=status,mimetype='application/json',)
我不想在相关模块中导入 jfs.serizalizers
以避免循环导入。
PyCharm 不理解这一点:
解决方法
如果你想导入一个模块只是为了类型检查,你可以导入常量from typing import TYPE_CHECKING
。
然后,您可以将导入 jfs.serializers.BaseModel
包含在 if 语句中,该语句仅在 TYPE_CHECKING 为 True 时导入 BaseModel。
TYPE_CHECKING 是一个特殊的常量,只有在检查变量类型时才为 True。在运行时它是 False。
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from jfs.serializers import BaseModel
也许您还必须添加 from __future__ import annotations
导入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。