Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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 MyPy-您如何在注释中实际使用typeshed存根?_Python_Mypy - Fatal编程技术网

Python MyPy-您如何在注释中实际使用typeshed存根?

Python MyPy-您如何在注释中实际使用typeshed存根?,python,mypy,Python,Mypy,注意:没有回答我的问题。它只是重申了我已经读过的内容 这是怎么回事?我读到的所有内容都说typeshed与MyPy捆绑在一起,并包含第三方库的存根。我已经在virtualenv中安装并运行了MyPy,我正试图用它来键入Flask代码,但我就是不明白 我有TypeScript方面的背景,我也在寻找类似的东西,但我不明白我们应该如何在MyPy中使用存根。例如,我有以下功能: def create_app(config_name="default"): app: Flask = Flask(_

注意:没有回答我的问题。它只是重申了我已经读过的内容

这是怎么回事?我读到的所有内容都说
typeshed
MyPy
捆绑在一起,并包含第三方库的存根。我已经在virtualenv中安装并运行了
MyPy
,我正试图用它来键入
Flask
代码,但我就是不明白

我有TypeScript方面的背景,我也在寻找类似的东西,但我不明白我们应该如何在
MyPy
中使用存根。例如,我有以下功能:

def create_app(config_name="default"):
    app: Flask = Flask(__name__)
    app.config.from_object(Configuration)
    CORS(app)
    register_extensions(app)
    register_blueprints(app)

    @app.route("/health")
    def health_check():
        return json.dumps({"status": "up"})

    return app
烧瓶非常标准,但严格禁止任何设置,这将成为一个无法出售的烂摊子。应用程序的类型是什么?我知道
typeshed
,但我不知道如何实际利用这些存根。
typeshed
文档说:

如果您只是使用mypy(或pytype或PyCharm),而不是开发它,那么您根本不需要与typeshed repo交互:typeshed的副本与mypy捆绑在一起

所以我假设我不需要导入类型,文档也没有提到导入它们

例如,有一个名为
app.pyi
的存根,但如果我这样注释函数:

def create_app(config_name="default") -> app:
我发现错误
名称应用程序未定义
。如果我导入它:

from typeshed import app
我得到错误
返回类型变为any是由于一个未跟踪的导入
,据我所知,这意味着没有这样的模块
typeshed
,或者它没有名为
app
的成员


那么,我实际上如何访问这些
typeshed
存根呢?我最后的办法是简单地克隆
typeshed
repo并将
mypy
作为自定义typeshed dir指向它,但我真的很想以正确的方式进行操作。

类型不是
Flask
?哇,我觉得自己像个大傻瓜。-。谢谢