是否有方法通过变量名称定义类型提示?从变量名称到类型提示
例子:
每次我的名字在我的代码的变量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