当前位置: 欣欣网 > 办公

一个被忽略的语法细节,却能提升你的Python代码质量

2024-06-03办公

在Python中,有这样一个语法,它 是可选的,不是必须这么写,但却能显著提升你的代码质量。 这就是 Python 中的类型提示(Type Hints)。

Python 中数据类型的问题

Python是一种动态类型编程语言,变量的类型是在运行时分配的,无需在赋值之前定义特定类型。

a = 5

变量 a 被赋值为 5,在此之前,无需声明 a 存储整数,直接将 5 赋值给 a

defadd(a, b):
return a+b
print(add(45)) # 9
print(add(4.05.0)) # 9.0
print(add('hi''world')) # hiworld
print(add([1,2], [3,4])) # [1, 2, 3, 4]

add 接收两个变量 a b 并返回 a+b 。但 a b 应该是什么数据类型呢?

  • 如果我们输入整数,就会得到一个整数

  • 如果传入浮点数,我们得到一个浮点数

  • 如果传入字符串,我们得到一个字符串

  • 如果我们传入列表,我们得到一个列表

  • Python并不在乎你传入 a b 的参数。如果出现错误,你需要自己解决。尽管如此,类型提示可能会有所帮助。

    类型提示介绍

    在 Python 中,类型提示是可选的。如果不使用它们,Python 也能正常运行。然而,对于其他开发者来说,类型提示能让我们的代码更易读。

    def add(a: int, b: int) -> int:
    return a + b

    a b 后面加上 : int ,在函数结尾 ) 后面加上 -> int 是类型提示,指示函数的参数和返回类型。

  • a 应该是整数

  • b 也应该是一个整数

  • 函数的返回值也应该是整数

  • 类型提示并非强制数据类型,而是为了提示而存在的,这一点需要注意。

    defadd(a: int, b: int) -> int:
    return a + b
    print(add(45)) # 9
    print(add(4.05.0)) # 9.0
    print(add('hi''world')) # hiworld

    我们可以在 a b 中传递浮点数或字符串,Python 不限制,允许代码运行。类型提示的主要目的是指导其他开发者阅读我们的代码时,明确数据类型应当为何。

    类型提示的一些优势

  • 开发人员能够迅速确定函数或方法应使用的数据类型

  • 其他开发人员能够快速了解函数或方法应返回的数据类型

  • 减少了变量数据类型的猜测和确认的时间

  • 提高了代码的整体可读性

  • 尽管类型提示是可选的,但它是编写优秀可读代码的必备条件。

    虽然仅仅使用类型提示并不能让代码变得优秀

    基础类型提示

    a: int = 5
    # a should be an integer

    变量类型提示

    defavg(a:int, b:int) -> float:
    return (a+b)/2

    函数类型提示

  • a b 应为整数

  • 函数应返回浮点数值

  • 复杂类型的类型提示

    但如果我们有一个整数列表呢?不用担心,内置的 typing 模块提供了一些有用的类型提示功能。

    from typing import List
    defaverage(numbers: List[int]) -> float:
    return sum(numbers)/len(numbers)

    numbers 应是一个整数列表。

    from typing import Dict
    defcount(d: Dict[str, int]) -> int:
    # stuff

    d 应该是一个字典,其中键是字符串,值是整数。

    classDog:
    pass
    from typing import List
    defmagic(dogs: List[Dog]) -> int:
    # stuff

    dogs 应该是一个包含自定义 dog 对象的列表。

    写在最后

    掌握类型提示并不困难,但它可以提高代码的可读性。在编写优秀的Python代码时,使用类型提示是至关重要的,特别是在开发大型企业应用程序并需要与其他开发人员合作时。

    Crossin的新书【 码上行动:用ChatGPT学会Python编程 】已经上市了。 本书以ChatGPT为辅助,系统全面地讲解了如何掌握Python编程,适合Python零基础入门的读者学习。

    购买后可加入读者交流群,Crossin为你开启陪读模式,解答你在阅读本书时的一切疑问。

    Crossin的其他书籍:

    添加微信 crossin123 ,加入编程教室共同学习 ~

    感谢 转发 点赞 的各位~