假设我在文件home/func.py中有一个简单的函数,然后对它进行一次调用。
def f(x):
return x
print(f("example"))现在假设我想使用一个存根( home/stubs/func.pyi )键入check函数,如下所示:
def f(x: int): ...现在,我想用mypy检查我的代码,看看是否有任何输入错误。在mypy上运行home/func.py,我希望有一个警告/错误,比如:Got string where int was expected --但是我无法让这个功能工作。
我在网上和文档中看到的内容表明,我应该创建一个包含以下内容的home/mypy.ini配置文件:
[mypy]
mypy_path = $MYPY_CONFIG_FILE_DIR/stubs然后,我应该在指向这个配置时运行mypy,比如:python -m mypy --config mypy.ini func.py。这是行不通的。
我知道我可以在函数定义中使用类型注释,但在这种情况下,存根的使用是非可选的。任何帮助都是非常感谢的。
发布于 2022-10-19 13:20:39
到目前为止(Python3.10和MyPy 0.982),和您一样,我还无法将存根从代码中分离出来,并使其在我的项目中工作。
现在,我要么将注释放入代码中,要么使用替代方案(如吡咯、皮赖特、火堆)。
我希望其他人纠正我,或者理解在其他项目(如熊猫或姜戈)中是如何做到的。
几个需要理解的提示
引用普拉吉·阿加瓦尔
这使得存根文件成为一种对类型“撒谎”的方式。 是否有一种方法可以将代码和输入信息保存在单独的文件中(为了可读性),同时仍然能够对照类型信息检查代码?
这反过来又引用了尚未关闭的问题"针对真实代码的测试存根文件“。
背景之外的来自BDFL的报价:
如果您想要输入注释,那么将其放入
main.py并去掉main.pyi。
相关问题:路径变量
https://stackoverflow.com/questions/72982795
复制相似问题