2016-01-13 31 views
2

與python 3.5.1。並使用mypy的當前安裝的git, mypy標記錯誤1 & 2,但它不報告3mypy未檢測到基本類型錯誤

什麼我做錯了,或者這是一個錯誤,或者這是一個已知的問題?

import typing 

def test_ordered_dict(od: typing.Dict[str,int]) -> typing.Dict[str,int]: 
    return 1 #type error 1 

a = test_ordered_dict(1) #type error 2 

def test_me(): 
    a = test_ordered_dict(1) # type error 3 is not reported 

回答

2

我從文檔的理解:http://mypy.readthedocs.org/en/latest/basics.html是mypy將只檢查一件事(模塊,函數等等),如果它表明它,它應該檢查(通過在模塊級進口打字或註釋一功能)。

所以1被檢查是因爲它在一個被鍵入的函數中,2被檢查爲導入類型指示你的模塊是鍵入的,它在模塊範圍內,但是3在非類型化函數的範圍內,所以它被忽略。

+1

你可以使用'--check-untyped-defs'來捕獲這個錯誤。 – dpercy