typing库学习

This module provides runtime support for type hints。

 

下面的函数接收与返回的都是字符串,注解方式如下:

def greeting(name: str) -> str:
    return name

greeting 函数中,参数 name 的类型是 str,返回类型也是 str

其实是提示,并没有强制报错:不过有了类型注解,一些 IDE 是可以识别出来并提示的,比如 PyCharm 就可以识别出来在调用某个方法的时候参数类型不一致

typing库学习

类型定义方法

以下几种类型的定义方法:

  • None
  • 内置的类(int, str,float)
  • 标准库(typing 模块)
  • 第三方扩展库
  • 抽象出的基类
  • 用户定义的类
  • 类别名 type aliases(s = str,然后用 s)
  • 使用 NewType
  • 使用 own generic types

复杂结构

对于一些结构的数据类型就不能用上述简单的方法表示了,比如:

names: list = ['lily', 'tom']
version: tuple = (6, 6, 6)
operations: dict = {'sad': False, 'happy': True}

以上虽然定义了最外层的数据结构,如列表、元组、字典,但他们每个元素的类型是什么也没有定义清楚,因此需要在 typing 库的帮助下来定义准确内部的结构:

from typing import List, Tuple, Dict

names: List[str] = ['lily', 'tom']
version: Tuple[int, int, int] = (6, 6, 6)
operations: Dict[str, bool] = {'sad': False, 'happy': True}

参考文档:

  • https://www.gairuo.com/p/python-type-annotations
  • https://docs.python.org/zh-cn/3/library/typing.html

 

上一篇:Python-数据类型-字符串类型


下一篇:北大oj知识点(2)