Python3 Typing

date
May 11, 2021
slug
python3 typing
status
Published
tags
python
summary
type
Post
python 的 typing 能帮助 IDE 更好地判断变量的类型,写代码的过程效率会高很多,重构的过程也会轻松很多。在多人协作的项目中,也能减少沟通的成本和误解。typing 的一般用法还是很好上手的,本篇 blog 主要记录几个不那么常见的问题。

定义回调函数的参数类型

传回调函数时,可以定义回调函数的传参和返回结果类型

以当前文件中的类型为 typing

如果需要 typing 的类型在文件中已经定义好了,那可以直接引用
如果 B 类先定义,则可以添加双引号来引用 A 类。
如果是 python 3.7+ 以上的版本,可以使用 from __future__ import annotation ,这样就不需要双引号。

typing 导致的循环引用

 
如果 class Aclass B 定义在两个文件中,且需要相互引用时,会出现循环引用的问题,文件结构:
a.py 的文件内容
b.py 的文件内容
如果我们执行 b.py ,这时会报 cannot import name 'A' 的错误。对 b.py 进行如下修改就可以解决该问题,注意 A 的 typing 两边一定要加「双引号」,当然在设计上应该劲量避免出现循环引用的情况。
 

© PanicByte 2021 - 2024 沪ICP备2023032072号-1