Python函数参数中的冒号与箭头

简介: Python函数参数中的冒号与箭头

在一些Python的工程项目中,我们会看到函数参数中会有冒号,有的函数后面会跟着一个箭头,你可能会疑惑,这些都是什么东西?

  • 其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型。函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型。

更官方的解释:此为type hints,是Python 3.5新加的功能,作用如上所述,官方文档为https://www.python.org/dev/peps/pep-0484/

值得注意的是,类型建议符并非强制规定和检查,也就是说即使传入的实际参数与建议参数不符,也不会报错。我认为类型建议符的作用更多的体现在软件工程方面:在多人合作的时候,我们对他人开发的代码并不熟悉,没有对类型的解释说明的话,往往需要花费更多的时间才能看出函数的参数和返回值是什么类型,有了说明符,可以方便程序员理解函数的输入与输出(具体涉及到的工作,比如静态分析与代码重构)。

下面我们以一个简单的函数twoSum为例,该函数计算的是两个输入参数的和:

#!/usr/bin/python3
# -*- coding:utf-8 -*-
def twoSum(num1: int, num2: int=100) -> int:
    sum = num1 + num2
    return sum
if __name__ == "__main__":
    print(twoSum.__annotations__)
    print(twoSum(1,2))
    print(twoSum(1))
    print(twoSum('I love ','Arsenal'))
    #print(twoSum('Arsenal'))
//结果
{'num1': <class 'int'>, 'num2': <class 'int'>, 'return': <class 'int'>}
3
101
I love Arsenal

对结果的解释:

第一行输出中的__annotations__是函数的保留属性,保存的是函数声明中的注释内容,比如我们使用的对参数"num1",“num2"和返回值的建议类型。

第二行输出是正常用法。

第三行输出验证了:注释内容后可以跟等号”=",意思为未传入实参时,该参数获得的默认值

第四行输出则验证了该解释说明符并非强制检查,我们传入了两个str实参,并不会报错,而是继续进行函数中的加法运算。如果传入的两个实参无法进行函数中规定的运算,则会正常报错。

参考链接:

1 python函数注释,参数后面加冒号:,函数后面的箭头→是什么?

相关文章
5个鲜为人知的内置Python函数
callable(x) callable(x)函数检查x是否可被调用。
|
23小时前
|
索引 Python
Python利用列表、字典和zip函数处理数据
最近重温Python基础语法,一道练习题巩固下列表、字典、循环。 给定下面两个列表 attributes 和 values,要求针对 values 中每一组子列表 value,输出其和 attributes 中的键对应后的字典,最后返回字典组成的列表,请分别用一行和多行条件循环语句,来实现这个功能
|
2天前
|
Python
Python函数参数类型不匹配
【6月更文挑战第2天】
14 4
|
3天前
|
C++ Python
|
5天前
|
Serverless 数据处理 数据库
Python函数的多返回值详解
Python函数的多返回值详解
6 1
|
6天前
|
数据处理 Python
Python函数:深入理解与应用
Python函数:深入理解与应用
7 1
|
6天前
|
算法 Python
Python函数的嵌套调用:深入理解与应用
Python函数的嵌套调用:深入理解与应用
9 1
|
6天前
|
IDE 开发工具 开发者
Python函数说明文档:编写清晰易懂的文档字符串
Python函数说明文档:编写清晰易懂的文档字符串
8 1
|
6天前
|
Python
Python函数的返回值深入解析
Python函数的返回值深入解析
7 1
|
6天前
|
存储 Python
Python函数参数详解
Python函数参数详解
8 1