Using Mypy local stubs

前端 未结 1 1045
醉酒成梦
醉酒成梦 2021-02-19 14:54

I am trying the typing hint introduced by Python 3.5 and got a problem by using local stubs as the typing hint with mypy.

The experiment I do is to creat kk.py containin

1条回答
  •  不知归路
    2021-02-19 15:39

    I do not know why someone have voted down this question without answering it or commenting about why he/she disliked it, but here is the answer I figured out:

    The stub file of mypy only works when importing a module. Thus, if you have

    def try_check(a):
        pass
    

    in kk.py, and

    def try_check(a: int):...
    

    in kk.pyi in the same directory with kk.py or in the directory that the MYPYPATH specifies, mypy will type check the python file if you import kk. It is, if you have

    import .kk
    kk.try_check('str')
    

    in test.py and run mypy test.py, mypy will report the type conflict. However, it will not report the conflict if you have

    try_check('str')
    

    in kk.py.

    You can type check functions in the program that contains the function definition If you write the typing hint explicitly in the definition of the function. For instance, you can write

    def try_check(a: int):
        pass
    
    try_check('str')
    

    in kk.py and then mypy kk.py. Mypy will report the type conflict.

    0 讨论(0)
提交回复
热议问题