可以强制执行类型提示吗?

2024-03-10

在 python 中使用“类型提示”表示法有什么好处吗?

import sys
def parse(arg_line: int) -> str:
    print (arg_line) # passing a string, returning None

if __name__ == '__main__':
    parse(' '.join(sys.argv[1:]))

对我来说,它似乎使语法变得复杂,而没有提供任何实际的好处(也许除了within开发环境)。基于此:

  • python 有没有计划包含type语言本身的限制?
  • “类型提示”有什么好处?我不能轻松地将其放入文档字符串或其他内容中吗?

据我所知,我在 python 代码库本身中也没有看到这么多——大多数类型都是手动强制执行的,例如:argparse.py https://github.com/python/cpython/blob/3.7/Lib/argparse.py以及我看过的任何其他文件https://github.com/python/cpython/blob/3.7/Lib/ https://github.com/python/cpython/blob/3.7/Lib/.


python 有计划在语言本身中包含类型约束吗?

几乎肯定不会,而且绝对不会在下一个主要版本 (4.x) 之前。

“类型提示”有什么好处?我不能轻松地将其放入文档字符串或其他内容中吗?

从我的脑海中,考虑以下几点:

  • 类型提示可以使用类似的工具进行验证mypy.
  • IDE 和其他工具可以使用类型提示来提供提示和技巧。例如,当您调用一个函数并且刚刚编写时foo(,IDE 可以获取类型提示并在附近显示一个框,其中显示foo(x: int, y: List[int])。作为开发人员,您的优势在于您拥有exactly您需要的信息会向您公开,而不必修改整个文档字符串。
  • 类型提示可以被类似的模块使用functools.singledispatch或外部库,例如multipledispatch添加其他与类型相关的功能(在本例中,根据名称和类型,而不仅仅是名称来调度函数调用)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可以强制执行类型提示吗? 的相关文章

随机推荐

  • 尝试使用列表迭代器删除对象

    我正在尝试使用列表迭代器从列表中删除对象 我已经浏览了网站上的其他解决方案 但没有一个解决方案可以缓解错误 线程 main java util ConcurrentModificationException 中的异常 这是我未执行的代码 v
  • 如何使用rxjava获取retrofit 2.0中的请求url?

    我正在尝试升级到 Retrofit 2 0 并在我的 android 项目中添加 RxJava 我正在进行 api 调用 并希望检索 url 及其以及 sqlite 中的响应数据作为缓存 Observable
  • 如何在Windows上使用JPL(双向Java/Prolog接口)?

    我对在 Java 中嵌入 Prolog 解释器感兴趣 一种选择是使用JPL http www swi prolog org packages jpl java api index html 但是 JPL 网站上的下载链接已损坏 并且安装页面
  • 从本地源安装 anaconda 库

    一段时间以来 我一直尝试在非常复杂的代理后面的 Windows PC 上安装 pymc 有效地使其安装在未连接到互联网的计算机上 我尝试在 condarc 文件中设置代理但未成功 但仍然收到错误消息 conda安装 chttps conda
  • C# - List 初始容量的用途是什么? [复制]

    这个问题在这里已经有答案了 我正在尝试执行以下操作 int count 50 List
  • 如果用户在特定页面上则显示部分

    如果我有一个包含以下 URL 的页面 http www mywebsite com users profile edit http www mywebsite com users profile edit 仅当用户位于该特定页面上时 如何显
  • 当每个函数返回 deferred.promise 时,如何链接函数数组的执行?

    我已经使用 deferred 模块在 Node js 中创建了我的第一个延迟对象 当我将结果传递给下一个函数并触发解析和拒绝时 它效果很好 当每个函数返回 deferred promise 时 如何链接函数数组的执行 我有类似函数的输入参数
  • Type.GetType(string) 应该了解动态生成的类型吗?

    我有一个使用 CodeDom 编译器创建一些代码的应用程序 我可以看到生成的程序集在内存中 但是当我调用 Type GetType typeName 时 它返回 null 我觉得这有点令人困惑 我究竟做错了什么 static void Ma
  • 如何检测 iPhone 正面朝上放在桌子上时是否正在旋转?

    有没有办法检测面朝上放在桌子上的 iPhone 是否正在旋转 我确实意识到这种运动不会由加速度计报告 也不会报告给 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrienta
  • 将已发送的彩信插入发送箱

    我正在尝试将彩信插入发送的数据库中 但可惜我无法在本机 Android 应用程序中查看它 我的插入代码 ContentValues values new ContentValues values put thread id thread i
  • 如何验证日历中的日期

    我已尝试使用以下代码 我已遵循示例 来测试从日历中选择的日期 如果我的数据库中不存在该日期 则应向最终用户显示验证错误消息 然而 错误并没有以
  • iOS 3 SDK 中 [NSBundle mainBundle] URLForResource:withExtension: 的替代方案是什么

    我正在使用 iOS 4 2 SDK 开发一个 iOS 应用程序 但我希望该应用程序能够在旧设备上运行 例如装有 iOS 3 1 3 的 iPhone 2G 我不知道这段代码的替代方案是什么 NSURL modelURL NSBundle m
  • 如何在 Azure 计算模拟器上配置 Web 角色以像本地 IIS(静态 URL)一样工作

    那么 问题是如何在 Azure 计算模拟器上配置 Web 角色 使其像在本地 IIS 上一样工作 我的意思是 Web 角色具有固定 url 就像您可以在项目属性中设置 使用本地 IIS Web 服务器 并设置固定 url 一样 如何将 Az
  • javascript:将参数传递给对象构造函数

    我正在编写一个jquery lib 我需要实现日期时间函数 我需要创建一个 Date 函数 它返回一个新的 Date 对象 如何将 Date args 函数的参数传递给 Date 对象构造函数以创建新的日期对象 我尝试了这样的方法 me是插
  • 导入不带 .py 扩展名的 python 模块,[重复]

    这个问题在这里已经有答案了 我同意有类似的问题 但没有一个符合我的目的 我有一个 python 脚本 没有 py 扩展名 我既不能更改文件名也不能添加符号链接 文件名很重要 我需要将上述文件导入到另一个python脚本中 我尝试过以下方法
  • ActionSheet 的工具栏问题

    我有以下示例代码 import SwiftUI struct ContentView View var body some View NavigationView NavigationLink destination DetailViewT
  • Oracle 存储过程中记录错误消息

    我们计划使用 Oracle DBMS 调度程序包将存储过程配置为每天作为批处理作业运行 我们想知道发生错误时记录错误消息的最佳方法是什么 是否可以选择记录到临时表 或者有更好的选择 提前致谢 登录临时表可能是一个很好的解决方案 例如 您可以
  • 为什么我的 MVC 项目发布后无法运行?

    我最近将我的第一个 MVC 2 项目发布到运行 Windows 2008 的商业 Web 服务器 据称该项目可以毫无问题地支持其他 MVC 站点 但遇到了一些问题 这是该项目的高级结构 正如您所看到的 这非常简单 但是 在发布站点并导航到
  • 我是 .NET 新手 - 我应该关注什么,应该忽略什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 因此 我在使用 php 和 Coldfusion 编程数据库驱动的 Web 应用程序方面拥有相当多的经验 不是在一起 在不同的时间 并且我开始研
  • 可以强制执行类型提示吗?

    在 python 中使用 类型提示 表示法有什么好处吗 import sys def parse arg line int gt str print arg line passing a string returning None if n