python类声明,Python可选的类型声明

在Python 3.6以上的版本中,Python已经获得了非常全面的类型声明的支持:

函数注解:

def add_int(a: int, b: 'b should be int', c: int=0) -> int:

return a + b + c

函数注解将被存储在__annotations__ 中,类似于enforce 模块可以对有注释的变量进行强制检查。如例子中所展现的,形参的注解可以是任意形式的,->将表明函数的返回类型。

变量声明:

primes: List[int] = []

x = 'HelloWorld'  # type: str

当用户在声明一个变量的时候,可以同时声明它的结构。在Go语言中,只有全局变量需要被如此声明。个人觉得这是个不错的规范,因为全局变量将在很多地方被使用,它们的结构可能是至关重要的,而局部变量通常仅在内部使用,不声明结构完全可以接受,不过值得注意的是,当局部变量在一个嵌套较深的代码段的顶部,以及局部变量将进入闭包中的时候,这个局部变量如果声明一下结构可能会有些益处。

Python的类型声明大体上是非常自由的,当你尝试编写它的时候,会发现这家伙很容易脱缰,导致失控。在这一点上Python官方提供了一种解决方案。

目前在Python标准库中,有一个暂不稳定的库:typing。typing提供了最基本的声明类型,用户可以像引入普通库一样将其中的类型引入文档中使用,同时提供了NewType()函数让用户能够很方便地创建自定义类型。此模块的完整规范记录在PEP484中。

目前typing已经在很多的官方库中使用了,当你读到看起来像是TypeScript的代码的时候,不用怀疑,那就是应用了typing的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值