Python中的参数匹配

简介: 除了传统的位置匹配与默认参数外,Python还提供了关键字匹配可变参数匹配方式。位置匹配与默认参数匹配可以缓和使用,但顺序有限制。

除了传统的位置匹配与默认参数外,Python还提供了关键字匹配可变参数匹配方式。

位置匹配与默认参数匹配可以缓和使用,但顺序有限制。

关键字匹配通过参数名匹配,可以改变匹配顺序。

可变参数匹配适于参数不确定的情况

几点说明:

位置匹配从左至右;

函数头部中*参数将传入的参数收集到元组,对应于调用时多个位置参数,**参数将传入的参数收集到字典,对应于调用时多个关键字参数

可变参数在函数头部使用时,表明函数可以接收任意多的参数(基于位置或关键字);

可变参数在函数调用时,表明分解参数集合,传递任意多的参数;

位置参数,关键字参数,*参数,**参数可以混用,但在函数头部时,有顺序要求:

从左只有依次为,位置参数,默认参数,*参数,**参数;

*参数,**参数在函数头部,调用时可以混用,但每种只可以出现一次


示例:

>>>def f(c, a=1, *b, **d):
         print a, b, c, d

>>>f('I am "c"', 100, *('hello', 'world'), b=2, **{'type':2, 'name':['Python', 'r']})  # 分为两步,先分解,再合并,调用中**参数分解时相当于形成关键字参数,
      100 ('hello', 'world') I am "c" {'b': 2, 'type': 2, 'name': ['Python', 'r']}             # *参数相当于普通参数

>>>def f2(a, b, c, d, e):
       print a, b, c, d, e

>>>f2(1, e = 5, *(2,), **{'c':3, 'd':4})
      1 2 3 4 5


>>>f3(1, ('a', 'b', ))
      1 (('a', 'b'),)
>>>f3(1, ('a', 'b', 'c'), 'alphabeta')
      1 (('a', 'b', 'c'), 'alphabeta')

>>>def f4(*args):print args

>>>args = (1, 2, 3, 4)

>>>f4(args)  # 只有一个元组参数,合并后作为函数收集参数形成的元组中的一个元素

       ((1, 2, 3,4),)

>>>f4(*args)  # 先分解元组,再作为函数收集参数形成的元组中的元素

      (1, 2, 3, 4)


目录
相关文章
|
13天前
|
Python
python函数的参数学习
学习Python函数参数涉及五个方面:1) 位置参数按顺序传递,如`func(1, 2, 3)`;2) 关键字参数通过名称传值,如`func(a=1, b=2, c=3)`;3) 默认参数设定默认值,如`func(a, b, c=0)`;4) 可变参数用*和**接收任意数量的位置和关键字参数,如`func(1, 2, 3, a=4, b=5, c=6)`;5) 参数组合结合不同类型的参数,如`func(1, 2, 3, a=4, b=5, c=6)`。
14 1
|
1月前
|
Python
Python传参数:传值还是传址?
【2月更文挑战第18天】
48 6
|
5月前
|
Python
Python函数的参数学习
Python函数的参数学习
|
4月前
|
Python
Python解包参数列表及 Lambda 表达式
Python解包参数列表及 Lambda 表达式
|
5月前
|
Python
Python 的函数参数
Python 的函数参数
|
8天前
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
|
12天前
|
安全 API 开发者
Python中使用`requests`库进行请求头与自定义参数设置的技术详解
【4月更文挑战第12天】在Python中,`requests`库是一个强大且灵活的HTTP客户端,用于发送所有类型的HTTP请求。在发送请求时,我们经常需要设置请求头和自定义参数来满足不同的需求。本文将详细探讨如何在Python中使用`requests`库进行请求头和自定义参数的设置。
|
1月前
|
算法 开发者 Python
【Python 基础扫盲 】self参数、__init__方法和.__str__方法的用处和区别?
【Python 基础扫盲 】self参数、__init__方法和.__str__方法的用处和区别?
20 0
C4.
|
1月前
|
Python
Python函数的参数
Python函数的参数
C4.
37 1
|
1月前
|
机器学习/深度学习 算法 计算机视觉
python机器学习超参数调优
超参数(hyper parameters)就是机器学习或深度学习算法中需要预先设置的参数,这些参数不是通过训练数据学习到的参数;原始算法一般只给出超参数的取值范围和含义,根据不同的应用场景,同一个算法的同一超参数设置也不同。【2月更文挑战第14天】
68 0

热门文章

最新文章