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)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 1、下载rpm源文件 * rpm下载不了的文件可以到[rpm官方](http://rpm.pbone.net/)进行下载 # 2、执行rpm文件 * 1、以下的rpm文件是有依赖,需要安装顺序进行执行. * 2、执行policycoreutils-python-2.5-29.el7.x86_64.rpm发现报 错误:依赖检测失败: policycoreutils = 2.5-22.el7 被 policycoreutils-python-2.5-22.el7.x86_64 需要 去rpm官方网找了一个`policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm`最新的安装包执行安装 * 3、python-kitchen-1.1.1-5.el7.noarch.rpm可以不需要安装 ``` rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm rpm -ivh audit-libs-python-2.8.4-4.el7.x86_64.rpm rpm -ivh libcgroup-0.41-20.el7.x86_64.rpm rpm -ivh libsemanage-python-2.5-14.el7.x86_64.rpm rpm -ivh checkpolicy-2.5-8.el7.x86_64.rpm rpm -ivh python-IPy-0.75-6.el7.noarch.rpm rpm -ivh setools-libs-3.3.8-4.el7.x86_64.rpm rpm -ivh policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm rpm -ivh container-selinux-2.74-1.el7.noarch.rpm rpm -ivh libseccomp-2.3.1-3.el7.x86_64.rpm rpm -ivh containerd.io-1.2.0-3.el7.x86_64.rpm rpm -ivh docker-ce-cli-18.09.0-3.el7.x86_64.rpm rpm -ivh docker-ce-18.09.0-3.el7.x86_64.rpm ``` # 3、启动docker ``` systemctl daemon-reload && systemctl restart docker ``` # 4、设置开机启动 * Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. ``` systemctl enable docker.service ``` # 5、验证docker ``` docker version ``` # 参考文章 * [CentOS 7.5离线安装Docker 18.09.3软件](https://jingyan.baidu.com/article/fb48e8becf31a16e632e145f.html)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值