栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 五大参数(详细)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 五大参数(详细)

Python五大参数 位置参数 默认参数 可变参数 命名关键字参数 关键字参数 位置参数

函数调用时,实参默认按位置顺序进行传递,并且要求个数和形参完全匹配。这就是位置参数

def SetInfomation(name,age):
    Username=name
    Userage=age
    print("Username:%s,Userage:%s"%(name,age))
SetInfomation("张三", 20)   

输出结果如下:

默认参数

在调用函数时如果不指定某个参数,Python 解释器会抛出异常。为了解决这个问题,Python 允许为参数设置默认值,即在定义函数时,直接给形式参数指定一个默认值。这样的话,即便调用函数时没有给拥有默认值的形参传递参数,该参数可以直接使用定义函数时设置的默认值。

def SetInfomation(name,age=20):
    Username=name
    Userage=age
    print("Username:%s,Userage:%s"%(name,age))
SetInfomation("张三")
SetInfomation("李四",45)

输出结果如下:

可变参数

就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个

在参数前面加上*就是可变参数。在函数内部,参数numbers接收得到的是一个tuple,调用该函数时,可以传入任意个参数,包括0个参数

def calc(*numbers):
    sum= 0
    for n in numbers:
        sum= sum+n*n
    return sum
    
print(calc(1,2,3,4,5))
t=(1,2,3,4,5)
print(calc(*t))
print(calc(*(1,2,3,4,5)))

此块代码,t为一个元组,相当于把传入的参数包装起来
在传入参数时,星号就有着解开包装的作用
输出结果如下

命名关键字参数

命名关键字参数需要一个特殊分隔符 * ,* 后面的参数被视为命名关键字参数
命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错
如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了

def SetInfomation(*,name,age):
    print(name,age)
SetInfomation(name="张三", age=20)

输出结果如下:

关键字参数

关键字参数是指使用形式参数的名字来确定输入的参数值。通过此方式指定函数实参时,不再需要与形参的位置完全一致,只要将参数名写正确即可。
该形式的语法格式如下所示:

def func(a, b, **kwargs)

其中 **kwargs即为可变参数(也为关键字参数),**kwargs表示创建一个名为 kwargs的空字典,该字典可接受任意多个外界传入的非关键字实参。

def SetInfomation(name,age,**other):
    print("name:%s,age:%s"%(name,age),other)
SetInfomation("张三",20,city="重庆",height="170cm")
Info={"city":"四川","height":"180cm"}
SetInfomation("李四",40,**Info)

输出结果如下:

特别注意的是,当默认参数与关键字参数同时存在,且关键字参数以字典解包的形式传入时,如果字典的有key与默认参数的参数名相同,则默认参数的值会被赋予字典里相同的key所对应的value
以下演示:

def SetInfomation(name,age,weight=80,**other):
    print("name:%s,age:%s,weight:%s"%(name,age,weight),other)
Info={"weight":90,"city":"四川","height":"180cm"}
SetInfomation("李四",40,**Info)

输出结果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/833769.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号