mypy 是靜態型別檢查工具,遵循 PEP484 與 PEP526 這兩個標準
而 PEP484 與 PEP526 這兩個標準最主要的用途是為 Python 加上型別標示,這樣可以更容易找到潛在的錯誤。
安裝
pip3 install mypy-lang
程式的部份 (type annotation)
Python 3
def hello(name: str) -> str:
"""foo."""
return "Hello, {}".format(name)
def main() -> None:
"""Main entry."""
hello("John")
Python 2
def hello(name):
# type: (str) -> str
"""foo."""
return "Hello, {}".format(name)
def main():
# type: () -> None
"""Main entry."""
hello("John")
如何使用 mypy 檢查
如果程式沒加 type annotation,那麼執行mypy
不會有任何問題。 如果有一部份使用了 type annotation,那麼執行 mypy
就會告知有問題。 要強制檢查,可以使用 --disallow-untyped-defsmypy --disallow-untyped-defs your_program.py
要產生 HTML 報告mkdir html
mypy --html-report ./html your_program.py
xdg-open ./html/index.html
產生 JUnit XMLmypy --junit-xml JUNIT_XML your_program.py
沒有留言:
張貼留言