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

Python形参定义类型函数中的五种参数类型

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

Python形参定义类型函数中的五种参数类型

普通参数(顺序参数)

默认参数

收集参数

命名关键字参数

关键字参数收集

'''
普通参数 就是位置参数,也叫顺序参数,是必须传递的参数,通常以最简单的传入参数的方式,其实在其它的语言中也常常被使用
'''
def ganyu(x, y):
    print(x, y)

ganyu(name, age)
'''
默认参数
'''
# 比如要求有三个参数:a,b,c,至少要传递进两个参数值
# 那么这时,最后一个参数就是默认参数,但是默认参数需要在定义行参时定义默认值
# 并且需要注意的是默认参数需要排在普通参数后面,并且给定参数
def ganyu(a, b, c=100):
    print(a, b, c)

# 调用时传递了默认的参数,那么里面使用的就是传递的实参,这时输出ganyu1 0 3
ganyu('ganyu1', 0, 3)
# 如果没有指定默认的的参数,那么里面使用的就是默认的值,这时输出ganyu1 2 100
ganyu('ganyu1', 2)
'''
收集参数
'''
# 一个行参专门收集多余的时参,或者可以理解为不确定需要传递多少个实参直接用一个行参来接受
# 在定义函数时,如果需要收集参数,那么这个行参前面需要加一个*号,例如 *args
# 接收的多余的参数,会存储在args中,形成一个元组
def ganyu1(a='+',*args):
    print(type(args))
    if a=='+':
        print('加运算',args)
    else:
        print('减运算',args)

ganyu1('+',100,200,300,400)
'''
命名关键字参数
'''
# 1、关键字参数定义在收集参数后面
# 2、关键字参数必须通过行参的名字来进行传递
def ganyu1(a, b, c=3, *ganyu, name):
    print(a, b, c)
    print(ganyu)
    print(name)

ganyu1(1, 2, 4, 5, 6, 7, 8, 9, name="ganyu")

'''
+顺序参数和命名关键字参数的区别
+顺序参数需要按照顺序传入
+也可以把顺序函数的普通参数按照关键字参数进行传递
+在调用时,必须按照行参的名字进行参数的传递
'''
def ganyu2(arg,name):
    print(arg)
    print(name)

ganyu2(name="ganyu3",arg="ganyu4")
ganyu2('ganyu3','ganyu4')
'''
关键字参数收集
'''

# **kwargs<= 其中kw ==> 也称keyword
# 带*和带**的区别:
# 带一个*就是收集参数,带两个**就是关键字参数收集
def ganyu(a, b, c, *args, name, age, **kwargs):
    print(a, b, c)
    print(args)  # 普通收集参数,会把多余的参数收集成为==>元组
    print(name, age)
    print(kwargs)  # 关键字参数收集,会把多余的关键字参数收集为==>字典

ganyu(1, 2, 3, 4, 5, 6, 7, name="my name is ganyu", age="00", aa="11", bb="22", cc="33")


# 1,2,3传递给a,b,c,4,5,6,7传递给args,my name is ganyu传递给name,00传递给age,aa,bb,cc都被kwargs收集
# 注意行参声明位置
# 普通参数==>默认参数==>收集参数==>关键字参数==>关键字收集参数
# 经常出现的参数:普通参数、收集参数、关键字收集参数

# 如果位置错误则会报错
def aa(a, name, *args):
    print(a)
    print(name)

# aa(1,name="1",1,2,3,4,5)

 

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

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

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