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

  • 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)

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

时间: 2024-08-30 14:07:05

python函数万能参数(动态参数)的相关文章

python函数中的动态参数

1.一级指针(*)动态参数一 在python中一个*表示将参数变成一个元组,可以接收多个参数 2.二级指针(**)动态参数二 在python中两个*表示将参数变成一个字典,在传值的时候必须是一对一对(键值对)的传,也可接收多个键值对 3.一级和二级混用时(万能参数) 在python中函数参数中包含一级和二级时,一级必须放到二级的前面 eg:f(p, *a, **b),不能写成f(p, **b, *a) 原文地址:https://www.cnblogs.com/oliverlucqut/p/887

Python函数的定义、参数传入与函数的调用

作为计算机代码的一种抽象方式,函数在Python中扮演了极为重要的角色.今天给大家介绍Python函数的定义.参数的传入以及调用方式.其中函数参数的传入方式为本节重点内容.Python函数的参数形式包括必选参数.默认参数.可变参数.命名关键字参数以及关键字参数.五类参数可单独传入也可组合传入. >>>> Python 函数的定义 Python中使用def语句来定义函数,然后依次写出函数名.括号.括号内的参数以及最后不能忘记的冒号,函数体需另起一行在缩进块中编写,最后返回值用retu

Python全栈__动态参数、名称空间、作用域、作用域链、加载顺序、函数的嵌套、global、nonlocal

1.动态参数 当实参数量与形参数量相等时,参数传递正常. def func1(a, b, c): pass func1(1, 2, 3) 当实参数量与形参数量不相等时,则会报错. def func1(a, b, c): pass func1(1, 2, 3, 4, 5, 6, 6) 用户传入到函数中的实参数量不确定时,或者为了以后扩展,此时要用到动态参数 *args  **kwargs(万能参数). 顺序: 位置参数,*args,默认参数,**kwargs 1.*args *args是接收的是所

function(函数)中的动态参数

我们可向函数传递动态参数,*args,**kwargs,首先我们来看*args,示例如下:     1.show(*args) def show(*args): print(args,type(args))    #以元组的形式向列表传递参数 show(11,22,33,44,55,66) 首先我们定义了一个函数,函数show(*args)里面的*args可以接收动态参数,这里我们接收一个元组形式的参数,我们可以向show()里面传递很多参数,函数默认把这些参数作为一个元组进行接收.     2

python函数 位置参数,关键字参数,可变参数优先级

def fun(arg,args=1,*arg,**keywords): python 一共有这四类参数,第一类最常见,不用多说,第二类,关键字参数,python能通过关键字找到参数,python函数的这种特性使得函数参数更加灵活,不一定要按顺序来传,第三类:一个星号是将非关键字参数收集起来,以tuple的形式保存,第四类则必须要提供”传递参数名=传递参数值”形式传递参数. 至于怎么传,相信大家都知道,这里不多说. 要说明的是在python2中这四类参数传递时是有优先顺序的,不管是定义函数,还是

python函数中的默认参数问题

Python 函数中,参数的传递本质上是一种赋值操作 def foo(arg): arg = 2 print(arg) a = 1 foo(a) # 输出:2 print(a) # 输出:1 def bar(args): args.append(1) b = [] print(b)# 输出:[] print(id(b)) # 输出:4324106952 bar(b) print(b) # 输出:[1] print(id(b)) # 输出:4324106952 def foo(x, a_list=

[python 函数学习篇]默认参数

python函数: 默认参数: retries=4 这种形式 def ask_ok(prompt, retries=4, complaint='Yes or no, please!'): while True: ok = raw_input(prompt) if ok in ('y', 'ye', 'yes'): return True if ok in ('n', 'no', 'nop', 'nope'): return False retries = retries - 1 if retri

[python 函数学习篇] 关键字参数

函数可以通过 关键字参数 的形式来调用,形如 keyword = value .例如,以下的函数: def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'): print "-- This parrot wouldn't", action, print "if you put", voltage, "volts through it." print &qu

Python函数的可变长参数

# 非关键字可变长参数(元组*args),把N个非关键字参数参数转化为元组.# 当函数被调用的时候,所有形参(必须的和默认的)都将赋值给函数声明中对应的局部变量,剩下的非关键字参数按顺序插入到一个元组中.# 可变长参数元组必须在位置参数和默认参数之后.def func(arg1, arg2 = 9, *args):    print("arg1: %d" % arg1)    print("arg2: %d" % arg2)    for i in args: