Python中的参数匹配-阿里云开发者社区

开发者社区> fjie> 正文

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)


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python常用函数--可变参数
刚学Python的时候,特别是看一些库的源码时,经常会看到func(args, kwargs)这样的函数定义,这个和让人有点费解。 有时你可能想定义的函数里面能够有任意数量的变量,也就是参数数量是可变的,这可以通过使用星号来实现(将下方案例保存为 function_varargs.
711 0
python命令行参数处理
使用argparse包来解析命令行参数: 1 #/usr/bin/python 2 #encoding=utf-8 3 4 import argparse 5 parser = argparse.
705 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4431 0
Python - 带参数的方法
import math class Point: def move(self, x, y): self.x = x self.y = y def reset(self): self.
625 0
Python中的参数匹配
除了传统的位置匹配与默认参数外,Python还提供了关键字匹配可变参数匹配方式。 位置匹配与默认参数匹配可以缓和使用,但顺序有限制。
556 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
10761 0
+关注
fjie
计算机学生,研究方向为数据挖掘与机器学习,现阶段主要兴趣为深度学习方法在图/网络等非常规(non Euclidean domain)数据中的应用。Github pages: flycser.github.io,Email: hfut_jf@aliyun.com
68
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载