python中类型注解的使用

python中类型注解可以显著提升程序的可读性,关于变量,函数参数及返回值的相关使用方法很多地方有介绍,就不再重复了。只有一点,在类中,需要引用当前定义的类时,这时比较麻烦些,如下面的代码:

class Deck:
    @classmethod
    def create(cls, shuffle: bool = False) -> Deck:
         """Create a new deck of 52 cards"""
         cards = [Card(s, r) for r in Card.RANKS for s in Card.SUITS]
         if shuffle:
             random.shuffle(cards)
         return cls(cards)

这个代码针对第3行函数返回类型Deck由于Deck类还没有完全定义,因此是会报错的,且不能运行。

据说此功能需要在Python4.0中才能通过,不过在Python3.7及更高版本中,可以通过导入__future__属性的annotations来实现:

from __future__ import annotations

class Deck:
    @classmethod
    def create(cls, shuffle: bool = False) -> Deck:
        ...

这个问题前段时间搞了好久,一直没解决,回头查了半天,终于找到了相关的讨论:

Python Type Hint类型注解 - 公众号python学习开发 - 博客园

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远的麦田

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值