人生苦短,我用Python 八:函数封装时候进行类型提示(Type Hints)

一、什么是类型提示

类型提示(Type Hints),它是Python 3.5版本引入的一个功能。通过使用类型提示,你可以在函数定义中添加注释指定参数返回值的类型。这有助于提高代码的可读性和可维护性,并且还可以帮助IDE等工具提供更好的自动补全和错误检查功能。尽管类型提示不是强制执行的,但它已经成为Python社区中常见的实践之一。

二、有什么好处

1. 提高代码可读性

通过类型提示,你可以清楚地了解函数的输入和输出类型,并且可以更容易地理解代码。

2. 提高代码可维护性

当你修改代码时,类型提示可以帮助你更快地理解代码的作用,并且减少在调试代码时的时间和精力。

3. 更好的自动补全和错误检查功能

许多IDE和编辑器都支持类型提示,并且可以利用它来提供更好的自动补全和错误检查功能。这些功能可以帮助你更轻松地编写和调试代码。

4. 与其他语言的交互性更强:

对于一些需要与其他语言进行交互的Python项目,类型提示可以使接口更加明确,从而方便其他语言的开发者更好地理解和使用Python代码。

三、类型提示,示例

1. 函数参数都是 int 或者 str,以及指定输出结果 类型

def add_numbers(x: int, y: int) -> int:
    """
    This function adds two numbers and returns the sum as an integer.

    :param x: An integer number.
    :param y: Another integer number.
    :return: The sum of x and y as an integer.
    """
    return x + y

在这个示例中,我们使用了类型提示来说明 xy 参数的类型都是整型(int),并且该函数返回的结果也应该是一个整数

需要注意的是,类型提示只是一种提示,它并不会影响程序的运行。但是,它可以帮助其他程序员更好地理解你的代码,并帮助IDE等工具提供更好的自动补全和错误检查功能。

2. 输入的参数是List,并且指定 List中的参数 类型

def foo(lst: List[str]) -> Dict[str, int]:
    """
    This function takes a list of strings as input and returns a dictionary
    with string keys and integer values.

    :param lst: A list of strings.
    :return: A dictionary with string keys and integer values.
    """
    result = {}
    for i, s in enumerate(lst):
        result[s] = i
    return result

在这个示例中,我们使用 List[str] 来表示参数 lst 是一个字符串列表。类似地,你可以使用 Dict[str, int] 来表示返回的是一个键为字符串类型值为整型的字典

3. 输入参数 是 Tuple 类型提示,指定每个元素的类型

def bar(tup: Tuple[int, str, bool]) -> None:
    """
    This function takes a tuple with an integer, a string, and a boolean value as 
    input and does not return anything.

    :param tup: A tuple with an integer, a string, and a boolean value.
    """
    pass

在这个示例中,我们使用 Tuple[int, str, bool] 来表示参数 tup 是一个包含一个整数一个字符串一个布尔值元组

4. 明确指定参数可以接受多种类型,使用 Union 类型

例如,如果你的函数可以接受一个字符串一个整数作为参数,


from typing import Union

def baz(x: Union[int, str]) -> None:
    """
    This function takes an integer or a string as input and does not return anything.

    :param x: An integer or a string.
    """
    pass

明确指定参数可以接受多种类型,你可以使用 Union 类型提示。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

QuietNightThought

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

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

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

打赏作者

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

抵扣说明:

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

余额充值