码迷,mamicode.com
首页 > 编程语言 > 详细

python函数万能参数(动态参数)

时间:2019-05-08 16:05:04      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:war   键值   python   python函数   UNC   默认   存储   一个   fun   

  • args:接收的是按照位置传参的值,然后组成一个元组
  • **kwargs:接收的是按照关键字传参的值,然后组成一个字典
  • 传参的时候必须先按照位置传,然后是默认参数,然后再按照关键字传递(形参和实参中的都一样)

在参数前面加*,这样可以传入多个参数,默认以元组的形式储存

如果直接传入一个list=[1,2,3,4],即func(list),则将list作为一个整体传入,即a=([1,2,3,4])

如果这样传入:func(*list),则是将list中的元素一一传入,即a=(1,2,3,4)

def func(a,*args,**kwargs):
    print(a)
    print(args)   #这是一个元组
    print(*args)  #加*传参,就将元组拆分开来,一个一个传过去 
    print(kwargs) #以字典的形式存储
    print(*kwargs)#加一个*表示表示字典的键,func1(**kwargs)可传入另一个函数
    #print(**kwa    rgs)
func(1,2,3,b = 4,c = 5)

1
(2, 3)
2 3
{b: 4, c: 5}
b c

 

def a(*args, **kwargs):
    # 此处的args表示装包,即将1,34,5装包成一个元组
    print(args, type(args))  # (1, 34, 5) <class ‘tuple‘>
    # 拆包,在args前加入*
    print(*args)  # 1 34 5
    # 一个*时表示获取键值key
    print(*kwargs)  # a b c
    # 注意直接将字典拆开时时无法打印的,此时借助一个函数打印
    # 此时相当直接使用b(a=1,b=24,c=5)进行赋值,如果函数b中不是a,b,c会报错
    b(**kwargs)
 
 
def b(a, b, c):
    print(a)
    print(b)
    print(c)

 

python函数万能参数(动态参数)

标签:war   键值   python   python函数   UNC   默认   存储   一个   fun   

原文地址:https://www.cnblogs.com/gwwj/p/10832287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!