python-类型提示(type hinting)

类型提示在 Python 3.5 及更高版本中引入,能够让代码更具可读性和可维护性,并帮助静态类型检查工具进行代码分析。以下是关于类型提示的一些详细介绍和示例:

类型提示概述

  1. 基本语法
    • 函数参数类型提示:def function_name(param: type) -> return_type:
    • 返回值类型提示:def function_name(...) -> return_type:
  2. 常见类型提示
    • int:整数
    • float:浮点数
    • str:字符串
    • bool:布尔值
    • list:列表
    • tuple:元组
    • dict:字典
    • set:集合
    • Union:联合类型(例如 Union[int, str] 表示可以是整数或字符串)
    • Optional:可选类型(例如 Optional[int] 表示可以是整数或 None)
    • Any:任意类型

示例代码

简单的加法函数

def add(a: int, b: int) -> int:
    """
    返回两个整数的和。

    Args:
        a (int): 第一个整数
        b (int): 第二个整数

    Returns:
        int: 两个整数的和
    """
    return a + b

# 示例使用
result = add(5, 3)
print(result)  # 输出: 8

带类型提示的列表操作

from typing import List

def sum_list(numbers: List[int]) -> int:
    """
    返回一个整数列表的和。

    Args:
        numbers (List[int]): 整数列表

    Returns:
        int: 列表元素的和
    """
    return sum(numbers)

# 示例使用
result = sum_list([1, 2, 3, 4])
print(result)  # 输出: 10

带联合类型提示的函数

from typing import Union

def display_value(value: Union[int, str]) -> str:
    """
    返回输入值的字符串表示形式。

    Args:
        value (Union[int, str]): 整数或字符串

    Returns:
        str: 输入值的字符串表示
    """
    return str(value)

# 示例使用
print(display_value(42))      # 输出: '42'
print(display_value("hello"))  # 输出: 'hello'

带可选类型提示的函数

from typing import Optional

def greet(name: Optional[str] = None) -> str:
    """
    返回问候语。如果提供了名字,则包含名字。

    Args:
        name (Optional[str]): 可选的名字

    Returns:
        str: 问候语
    """
    if name:
        return f"Hello, {name}!"
    else:
        return "Hello, stranger!"

# 示例使用
print(greet("Alice"))  # 输出: 'Hello, Alice!'
print(greet())         # 输出: 'Hello, stranger!'

带复杂数据结构的函数

from typing import Dict, List

def process_data(data: Dict[str, List[int]]) -> int:
   """
   处理包含字符串键和整数列表值的字典,并返回所有整数的总和。

   Args:
       data (Dict[str, List[int]]): 包含字符串键和整数列表值的字典

   Returns:
       int: 所有整数的总和
   """
   total = 0
   for key, numbers in data.items():
       total += sum(numbers)
   return total

# 示例使用
sample_data = {"a": [1, 2, 3], "b": [4, 5, 6]}
result = process_data(sample_data)
print(result)  # 输出: 21

通过类型提示,可以使代码更加明确和清晰,并帮助 IDE 和静态类型检查工具进行代码分析和错误检测。

posted @ 2024-05-11 11:38  __username  阅读(26)  评论(0编辑  收藏  举报

本文作者:DIVMonster

本文链接:https://www.cnblogs.com/guangzan/p/12886111.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。