zoukankan      html  css  js  c++  java
  • 零基础学python-17.3 特定的参数匹配模型快速入门

    这一章节我们来讨论一下特定的参数匹配模型快速入门的基础知识

    在讨论语法细节前我需强调一下,一般来说我们都不需要用到这种匹配模型,这里只是简单的介绍一下

    1.位置:从左到右进行匹配

    >>> def test(a,b,c):
    	print(a,b,c)
    
    	
    >>> a=1
    >>> b=2
    >>> c=3
    >>> test(a,b,c)
    1 2 3
    >>> 


     

    2.关键字参数:通过参数名进行匹配

    >>> def test(a,b,c):
    	print(a,b,c)
    
    	
    >>> a=1
    >>> b=2
    >>> c=3
    >>> test(a,b,c)
    1 2 3
    >>> test(c=3,b=2,a=1)
    1 2 3
    >>> 


    我们继续沿用上面的代码,只不过在调用的时候把参数特别注明,随后的调用结果跟上面的一样

    3.默认参数:为没有传入值的参数定义参数值

    >>> a=1
    >>> b=2
    >>> c=3
    >>> def test(a,b=3,c=4):
    	print(a,b,c)
    
    	
    >>> test(a)
    1 3 4
    >>> 


    上面的代码里面我们调用test的时候没有传入b和c,但是由于在定义函数之初就已经把b和c设定了默认值,所以打印的时候是输出默认值

    4.可变参数:收集任意多基于位置或者关键字的参数

    注意:它们都是以*开头

    >>> def test(*args):
    	print(args)
    
    	
    >>> a=1
    >>> b=2
    >>> test(a,b)
    (1, 2)
    >>> a=(1,2,3)
    >>> b=[1,2,3]
    >>> c='abc'
    >>> d=5
    >>> test(a,b,c,d)
    ((1, 2, 3), [1, 2, 3], 'abc', 5)
    >>> 


    5.可变参数解包:传递任意多基于位置或者关键字的参数

    >>> def test(**args):
    	print(args)
    
    	
    >>> test(1,2)
    Traceback (most recent call last):
      File "<pyshell#27>", line 1, in <module>
        test(1,2)
    TypeError: test() takes 0 positional arguments but 2 were given
    >>> test(a=1,b=2)
    {'a': 1, 'b': 2}
    >>> 


    从上面的代码可以看出,它只对关键字参数起作用,其他的报错

    6.keyword-only模式

    >>> def test(a,*args,b):
    	print(a,args,b)
    
    	
    >>> test(a=1,b=2)
    1 () 2
    >>> test(1,5,b=2)
    1 (5,) 2


    注意:上面的代码必须存在b=xxx不然会报错,这里必须把b当成是关键字参数

    >>> def test(a,*args,b):
    	print(a,args,b)
    
    	
    >>> test(a=1,b=2)
    1 () 2
    >>> test(1,5,b=2)
    1 (5,) 2
    >>> test(1,5)
    Traceback (most recent call last):
      File "<pyshell#41>", line 1, in <module>
        test(1,5)
    TypeError: test() missing 1 required keyword-only argument: 'b'
    >>> test(a=1,2)
    SyntaxError: non-keyword arg after keyword arg
    >>> 


    总结:这一章节简单讨论了特定的参数匹配模型快速入门的基础,以及会出现的一些问题

    这一章节就说到这里,谢谢大家

    ------------------------------------------------------------------

    点击跳转零基础学python-目录

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    根本解决:由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。
    通过SQLServer的数据库邮件来发送邮件
    SQLFullbackup
    vs2015 iis express启动不了及安装DotNetCore.1.0.0-VS2015Tools.Preview2失败的解决方法
    Django1.7+JQuery+Ajax集成小例子
    编译安装带ssl 模块指定版本Python
    细说IIS异常日志 — 你必须知道的功能
    7 MySQL存储过程和函数
    6 MySQL视图
    5 MySQL索引
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4896732.html
Copyright © 2011-2022 走看看