[英]print doesn't work with mypy
當我在python3方法中使用mypy時,它不會打印任何內容。 我使用下面的代碼,並且沒有錯誤。
def p(st : str) -> bool:
print('hello')
return True
p("hello")
print(10)
但不會顯示“ hello”或“ 10”。 問題是什么?
如果您有一些Python代碼,是否決定使用mypy對其進行檢查完全是可選的。 如果您關心代碼的類型檢查,則可以運行mypy並獲取有關代碼包含的任何錯誤(如果有)的報告。 如果您不關心代碼的類型檢查,則可以忽略該工具(因為您不需要報告)。
請注意, mypy
所做的只是向您提供報告。 這就是為什么做mypy test.py
什么都不做的原因-它正在生成報告,實際上沒有運行任何代碼。
當前,您的代碼沒有類型錯誤,因此mypy實際上將什么也不會打印出來-報告為空。 您可以通過嘗試在代碼中故意引入錯誤來查看mypy將為您提供的各種報告示例。 例如,嘗試修改您的函數,使其返回字符串而不是布爾值。 這與您的類型簽名矛盾,因此mypy會將其標記為錯誤並將其包含在生成的報告中。
要實際運行代碼,您將需要使用Python解釋器。 在這里,似乎您正在編寫Python 3代碼,因此您需要首先安裝並使用Python 3解釋器。 完成后,如果使用的是Mac或Linux,則可以通過執行python3 test.py
在命令行上運行代碼python3 test.py
如果使用的是Windows,則可以執行py -3 test.py
在命令行上運行代碼。
請注意,Python 3解釋器在運行它時會完全忽略您的類型注釋。 注釋是有效的Python語法,但Python解釋器本身基本上將其忽略。 注釋的存在純粹是一種讓您將元數據附加到代碼的某些部分的方式,第三者庫和工具隨后可以對其進行分析和使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.