我正在尝试Python 3.5引入的输入提示,并通过使用本地存根作为mypy的输入提示来解决问题.
我做的实验是创建包含kk.py的
def type_check(a):
pass
Run Code Online (Sandbox Code Playgroud)
另外,我把kk.pyi包含在内
def type_check(a: int):...
Run Code Online (Sandbox Code Playgroud)
在同一目录中.通过这种方式,我试图通过将字符串传递给kk.py中的type_check来触发"赋值中的ncompatible类型"的错误.但是,当我运行mypy kk.py并且没有错误.
因此我尝试了mypy doc建议的另一种方法,即将环境变量MYPYPATH设置为〜/ some/path/stub并将kk.pyi放在目录中.然而,我得到了同样的错误.
有人可以帮我吗?
这是关于如何使用本地存根的mypy wiki .
Mus*_*sen 10
我不知道为什么有人在没有回答这个问题的情况下对这个问题进行了投票,或者评论了他/她不喜欢这个问题的原因,但我得知的答案是:
mypy的存根文件仅在导入模块时有效.因此,如果你有
def try_check(a):
pass
Run Code Online (Sandbox Code Playgroud)
在kk.py,和
def try_check(a: int):...
Run Code Online (Sandbox Code Playgroud)
在与kk.py位于同一目录下的kk.pyi中或在MYPYPATH指定的目录中,如果导入kk,mypy将键入检查python文件.如果你有,那就是
import .kk
kk.try_check('str')
Run Code Online (Sandbox Code Playgroud)
在test.py并运行mypy test.py,mypy将报告类型冲突.但是,如果您有冲突,它不会报告冲突
try_check('str')
Run Code Online (Sandbox Code Playgroud)
在kk.py.
您可以在包含函数定义的程序中键入检查函数如果在函数定义中明确写入了类型提示.例如,你可以写
def try_check(a: int):
pass
try_check('str')
Run Code Online (Sandbox Code Playgroud)
在kk.py然后mypy kk.py.Mypy将报告类型冲突.
| 归档时间: |
|
| 查看次数: |
1170 次 |
| 最近记录: |