首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对`.pyi`存根文件使用Mypy

对`.pyi`存根文件使用Mypy
EN

Stack Overflow用户
提问于 2022-07-14 15:09:34
回答 1查看 205关注 0票数 0

假设我在文件home/func.py中有一个简单的函数,然后对它进行一次调用。

代码语言:javascript
复制
def f(x):
   return x

print(f("example"))

现在假设我想使用一个存根( home/stubs/func.pyi )键入check函数,如下所示:

代码语言:javascript
复制
def f(x: int): ...

现在,我想用mypy检查我的代码,看看是否有任何输入错误。在mypy上运行home/func.py,我希望有一个警告/错误,比如:Got string where int was expected --但是我无法让这个功能工作。

我在网上和文档中看到的内容表明,我应该创建一个包含以下内容的home/mypy.ini配置文件:

代码语言:javascript
复制
[mypy]
mypy_path = $MYPY_CONFIG_FILE_DIR/stubs

然后,我应该在指向这个配置时运行mypy,比如:python -m mypy --config mypy.ini func.py。这是行不通的。

我知道我可以在函数定义中使用类型注释,但在这种情况下,存根的使用是非可选的。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2022-10-19 13:20:39

到目前为止(Python3.10和MyPy 0.982),和您一样,我还无法将存根从代码中分离出来,并使其在我的项目中工作。

现在,我要么将注释放入代码中,要么使用替代方案(如吡咯皮赖特火堆)。

我希望其他人纠正我,或者理解在其他项目(如熊猫姜戈)中是如何做到的。

几个需要理解的提示

引用普拉吉·阿加瓦尔

这使得存根文件成为一种对类型“撒谎”的方式。 是否有一种方法可以将代码和输入信息保存在单独的文件中(为了可读性),同时仍然能够对照类型信息检查代码?

这反过来又引用了尚未关闭的问题"针对真实代码的测试存根文件“。

背景之外的来自BDFL的报价

如果您想要输入注释,那么将其放入main.py并去掉main.pyi

相关问题:路径变量

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72982795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档