是否有方法通過變量名稱定義類型提示?從變量名稱到類型提示
例子:
每次我的名字在我的代碼的變量response
,我希望它有一個類型提示django.http.HttpResponse
。
我的用例是對類似PyCharm的IDE進行類型提示。到目前爲止,我沒有用例在運行時評估它。
我想有一般(而不是pycharm具體)解決方案。
我想避免一遍又一遍地做手動式的暗示。
請告訴我爲什麼您對此問題投下了贊成票。我很好奇,樂於學習。
是否有方法通過變量名稱定義類型提示?從變量名稱到類型提示
例子:
每次我的名字在我的代碼的變量response
,我希望它有一個類型提示django.http.HttpResponse
。
我的用例是對類似PyCharm的IDE進行類型提示。到目前爲止,我沒有用例在運行時評估它。
我想有一般(而不是pycharm具體)解決方案。
我想避免一遍又一遍地做手動式的暗示。
請告訴我爲什麼您對此問題投下了贊成票。我很好奇,樂於學習。
response
def test_foo():
response: django.http.HttpRequest
response=handle_request(request)
所有第一用法見https://www.python.org/dev/peps/pep-0526/
其缺點是response: django.http.HttpRequest
需要在範圍內的每個第一次使用前付諸表決。據我所知是沒有辦法通過自動生成的存根文件到每個模塊級別只定義一次這個
您可以自動生成創建stub files(與.pyi擴展名)包含類型提示爲源碼。
我想這個自動生成並不難實現。
這有利於所謂的「類型的註釋添加到響應的所有第一次運用」的答案,認爲源代碼不包含在同一行(response: django.http.HttpRequest
)幾次
缺點:您需要一個建設 - 步驟來創建存根文件。
@MooingRawr我在發佈之前閱讀了您提供的鏈接。我不明白這可以幫助我。我不想一次又一次地做明確的類型暗示。 – guettli
我不認爲將變量名稱連接到某種類型是不錯的做法。只要你定義了它,就可以使用註釋來定義它的類型,以使其更明確,而不是將其定義在可見代碼之外的某處 – Alex
@Alex我儘量避免過時的註釋。這個評論是什麼意思?它告訴我這個叫做「迴應」的東西是......驚喜,驚喜......它告訴我這是一個迴應。是的,好消息!我喜歡「乾淨的代碼」和「乾淨的編碼器」的作者指南:http://www.informit.com/articles/article.aspx?p=1326509 – guettli