从变量名到类型提示
From variable name to type hint
有没有办法通过变量名定义类型提示?
示例:
每次我在我的代码中命名一个变量 response
时,我希望它有一个 django.http.HttpResponse
的类型提示。
我的用例是像 PyCharm 这样的 IDE 的类型提示。到目前为止,我没有用例在 运行 时间对此进行评估。
我想要通用的(而不是 pycharm 特定的)解决方案。
我想避免一遍又一遍地进行手动和显式类型提示。
请告诉我你为什么不赞成这个问题。我很好奇也愿意学习。
向所有 return 一个 HttpResponse
的方法添加类型注释
Python中的一个变量需要声明。它是通过 lvalue(我的定义,也许有更好的描述方式)
创建的
response=handle_request(request)
如果handle_request()
有类型注解,那么response
就不需要做类型注解了。
这并没有直接回答问题,而是解决了问题背后的问题。
此回答基于用户Alex的评论。谢谢:-)
为 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)。
我猜这个自动生成不难实现。
这对名为“Add type annotation to all first usages of response”的答案有好处,源代码多次不包含同一行(response: django.http.HttpRequest
)
缺点:您需要一个构建步骤来创建存根文件。
有没有办法通过变量名定义类型提示?
示例:
每次我在我的代码中命名一个变量 response
时,我希望它有一个 django.http.HttpResponse
的类型提示。
我的用例是像 PyCharm 这样的 IDE 的类型提示。到目前为止,我没有用例在 运行 时间对此进行评估。
我想要通用的(而不是 pycharm 特定的)解决方案。
我想避免一遍又一遍地进行手动和显式类型提示。
请告诉我你为什么不赞成这个问题。我很好奇也愿意学习。
向所有 return 一个 HttpResponse
的方法添加类型注释Python中的一个变量需要声明。它是通过 lvalue(我的定义,也许有更好的描述方式)
创建的response=handle_request(request)
如果handle_request()
有类型注解,那么response
就不需要做类型注解了。
这并没有直接回答问题,而是解决了问题背后的问题。
此回答基于用户Alex的评论。谢谢:-)
为 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)。
我猜这个自动生成不难实现。
这对名为“Add type annotation to all first usages of response”的答案有好处,源代码多次不包含同一行(response: django.http.HttpRequest
)
缺点:您需要一个构建步骤来创建存根文件。