鱼C论坛

 找回密码
 立即注册
查看: 1857|回复: 0

[技术交流] 关于不同类型的函数参数的输入、排序规则与一些特殊符号总结

[复制链接]
发表于 2021-6-14 15:05:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 fc5igm 于 2021-7-4 17:05 编辑

变量类型:

已知函数参数共有三种类型:(如有补充,欢迎评论)
单独的变量型,变量前加1个星号型,变量前加2个星号型

单独的变量型:即用一个变量对应一组数据。
变量前加一个星号型:可以以元组的形式输入若干个独立变量对应若干个相关数据。
变量前加两个星号型:可以以字典的形式输入若干个独立变量对应若干个相关数据。

其中在函数定义撰写的过程中,推荐以如下顺序撰写
(*变量,变量,**变量)

下边用一些例子进行更形象的说明
>>> def test(a,b,c,*x,**y):
        print(x)
        print(y)
        print(a,b,c)

>>> test('a','b','c','d','e','f','g',h=1,i=2,j=3,k=4)
('d', 'e', 'f', 'g')
{'h': 1, 'i': 2, 'j': 3, 'k': 4}
a b c
>>> def test(*x,a,b,c,**y):
        print(x)
        print(y)
        print(a,b,c)

>>> test('a','b','c','d','e',a='a',b='b',c='c',d='d',e='e')
('a', 'b', 'c', 'd', 'e')
{'d': 'd', 'e': 'e'}
a b c

在此特别感谢@Twilight6 对本文内容提供的帮助^_^


以下来自于:https://www.cnblogs.com/ArsenalfanInECNU/p/10724203.html

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实参,并不会报错,而是继续进行函数中的加法运算。如果传入的两个实参无法进行函数中规定的运算,则会正常报错。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-17 07:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表