首页 > 其他分享 >函数的可变长参数

函数的可变长参数

时间:2023-12-11 14:45:35浏览次数:38  
标签:函数 kwargs args add dict 可变 print 参数

可变长参数

  • 参数的长度可便是指在调用函数的时候,实参的个数可以不固定
    • 在调用函数的时候,实参的定义就是位置参数和关键字参数两种
    • 形参可以提供两种解决方案来分别处理两种形式的可变长度的参数

(1)可变长位置参数(*args)

(1)任意类型参数

  • 如果在最后一个形参名的前面加,那么在调用函数的时候,溢出的实参,都会被接收,以元组的形式保存下来赋值给该形参
"""可变长位置参数"""
# 可变长位置参数就是在形参前面加个*,可以以元组的形式保存多出来的实参。

#在形参前面加*来接收调用时溢出的实参,最后以元组的形式保存!

# def login(*args):
#
#     return  args
# res=login(1,2,3,4,5)
# print(res)#(1, 2, 3, 4, 5)

#如果要求多个值的和
# def add(*args):
#     res=0
#     for i in args:
#         res+=i
#     print(res)
# add(1,2,3,4,5)
#15

(2)解包

  • 如果实现生成一个列表也可以直接传值给*args
"""解包"""
# 调用函数后,需要在列表前加*对列表进行解包,赋值给args
list=[11,22]
def add(*args):
    print(args)

add(1,2,*list)


# def add(*args):
#     print(args)
#
#
# add(1, 2, *[11, 22])

(2)可变长关键字参数(**kwargs)

  • 如果在形参前面加**,那么在调用函数时,溢出的关键字参数,都会以字典的形式保存下来赋值给该形参
"""可变长关键字参数**kwargs"""
# 可变长关键字参数,定义函数的形参前加**,调用函数的时候溢出的关键字,会以字典的形式保存下来赋值给形参
# def add(**kwargs):
#     print(kwargs)
#
# add(name='syh',age=18)
# #{'name': 'syh', 'age': 18}

#定义一个字典,字典前加**, 仍可以将以字典为实参传给**args
# dict={'name':'syh','age':18}
# def add(**kwargs):
#     print(kwargs)
#
# add(**dict)

# # 如果形参为常规参数(位置或默认),实参仍可以是 ** 的形式
# def foo(x, y, z=3):
#     print(x)
#     print(y)
#     print(z)
#
# foo(**{'x': 1, 'y': 2})



# 可变长位置参数和可变长关键字参数混合使用
# def register(name, age, *args, **kwargs):
#     user_dict = {'name': name, 'age': age}
#     if args:
#         user_dict['additional_info'] = args
#     if kwargs:
#         user_dict.update(kwargs)
#     return user_dict
#
# user_dict = register("Dream", 18, "handsome", hobby=["music"])
# print(user_dict)





def add(name,age,*args,**kwargs):
    dict={'name':name,'age':age}
    # 如果有位置参数进来而没有变量名接收的时候就会打包成元组,放到上面的字典中
    if args:
        dict['gender']=args
        # 如果有关键字参数进来,就会被字典更新
    if kwargs:
        dict.update(kwargs)
    return dict

dict=add('syh',18,'男',hobby='music')
print(dict)

标签:函数,kwargs,args,add,dict,可变,print,参数
From: https://www.cnblogs.com/suyihang/p/17894363.html

相关文章

  • 函数的参数
    函数的参数形参和实参的介绍函数的参数分为形式参数和实际参数,简称形参和实参形参即在定义函数时,括号内声明的参数。形参本质就是一个变量名,用来接收外部传来的值。实参即在调用函数时,括号内传入的值值可以是常量、变量、表达式或三者的组合#形参和实参##定义的......
  • 函数
    在Go语言中,函数通常会返回一个错误(error)作为其最后一个返回值,以允许调用方检查和处理函数执行过程中是否发生了错误nil在很多情况下用于表示空、零值或未初始化的状态。表示它不指向任何内存地址。如果err为nil,则表示成功。没有错误err可以处理,可以不处理 什么时候方法......
  • 学C笔记归纳 第十一篇——函数1
    库函数学习网站:www.cplusplus.com/reference/clibrary官方英文版:https://en.cppreference.com官方中文版:https://zh.cppreference.com尽量提高英文阅读能力,对后续学习工作帮助非常大。函数命名都是有意义的,大多包含功能英文缩写,库函数的使用必须包含头文件。 函数的组成:r......
  • 【Lidar】Laspy库介绍+基础函数(读取、可视化、保存、旋转、筛选、创建点云数据)
    ​1Laspy库介绍        laspy是一个Python库,主要用于读取、修改和创建LAS点云文件。该库兼容Python2.6+和3.5+,并且可以处理LAS版本1.0-1.3的文件。        在laspy库中,可以使用命令行工具进行文件操作,如格式转换和验证,以及比较LAS文件。此外,laspy还支持分块......
  • 舍弃99%的参数,还能达到相同的性能!阿里团队发现大模型「合二为一」的黑魔法!而且不用GPU
    动漫《龙珠》里,构想了一种“美达摩星人融合术”,通过融合术舞步就可以让譬如悟空与贝吉塔合体,成为“究极超强合体战士”悟吉塔。在《X战警:天启》中,反派大Boss也拥有吸收他人能力化为己用的强大能力。哪怕在《超级马里奥》中,马里奥也拥有吃下蘑菇和花朵获得投掷火球的能力的设定。......
  • C++中的虚函数和纯虚函数详细讲解
    1.虚函数1.1概念(1)定义一个函数为虚函数,不代表函数为不被实现的函数。(2)定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。1.2简介假设我们有下面的类层次classA{public:virtualvoidfoo(){cout<<"A::foo()iscalled"<<endl;}};c......
  • select_shape 中features参数解析
    Halcon算子select_shape-借助形状特征选择区域(选择轮廓)select_shape- 借助形状特征选择区域。原型:1select_shape(Regions:SelectedRegions:Features,Operation,Min,Max:)(将连接的区域进行筛选,筛选的特征有很多,如面积长度等,可以去掉不满足条件......
  • free内存参数介绍
    第一部分Mem行:total内存总数:15.7Gused已经使用的内存数:15.6Gfree空闲的内存数:93Mshared当前已经废弃不用,总是0buffersBuffer缓存内存数:298McachedPage缓存内存数:14G对操作系统来讲是Mem的参数,buffers/cached都是属于被使用,所以它认为free只有93M......
  • C# mysql where in 查询时参数化的问题
    大家都知道写代码查询sql的时候是需要对传入的变量参数化的,否则就会有sql注入的风险具体的原因是拼接传入的字符串会被当做sql语句进行解析,如果在传入的参数上做点手脚,就会导致sql的执行超出预期,具有很大的安全隐患,比如当登陆时传入的sql语句是selectcount(*)fromtablewher......
  • MySQL中的date_trunc()函数可以根据不同的时间单位对日期/时间进行截断或截取,返回截断
    转自:https://xkzzz.com/post/235698.htmlMySQL中的date_trunc()函数可以根据不同的时间单位对日期/时间进行截断或截取,返回截断后的日期/时间值。SELECTDATE_TRUNC('day','2019-06-0808:30:45');--截断到天,返回2019-06-0800:00:00SELECTDATE_TRUNC('hour','2019-06-0......