• 参数2


    # -*- coding: utf-8 -*-
    #python 27
    #xiaodeng
    #参数2
    
    
    #默认情况下,参数都是通过其位置进行匹配,从左到右,而且必须精确地传递和函数头部参数名一样多的参数
    #关键点:
    '''
    1、位置:从左到右进行匹配,按照顺序将参数传递给函数头部的参数名称
    2、关键字参数:通过参数名进行匹配
       调用者可以定义哪一个函数接受这个值,使用name=value的方式来传递参数
    3、默认参数:为没有传入值的参数定义默认的参数值
        使用name=value的方式,首先默认给参数传递一个值,如url=None,如果不给参数赋值就参数默认的值为None
    4、可变参数:收集任意多基于位置或关键字的参数
       如:*args,支持可变长度参数的tuple
    5、*kwargs传递值的方式,传入的格式是一个dict
    '''
    
    
    #语法匹配
    '''
    func(value)                     #常规参数:通过位置进行匹配
    func(name=value)                #关键字参数:通过变量名匹配
    func(*args)                     #tuple,以name传递所有的对象,并作为独立的基于位置的参数
    func(**dict)                    #以name成对的传递所有的关键字/值,并作为独立的关键字参数
    '''
    
    
    
    #细节:
    #在函数调用中,参数出现的先后顺序:任何位置参数(value),任何关键字参数(name=value),*args、**dict
    #
    
    
    #案例
    #常规参数
    def f(a,b,c):
            print a,b,c
            
    f(1,2,3)
    
    
    #关键字参数及其优点
    #先后顺序已经不重要。
    #起到数据标签的作用,可以一目了然的知道数据的含义是什么,如:name='xiaodeng',可以清楚的知道xiaodeng是名字
    f(a=2,b=2,c=5)
    
    
    
    #任意参数的实例
    #*args和**kwargs让函数支持接受任意数目的参数
    #收集参数
    #python将所有位置相关的参数收集到一个新的元组中
    def f(*args):
            print args
    
    
    f(1)#注意结果是一个tuple结构
    f(1,2)
    f(1,2,3)
    
    
    def my(**args):
            print args
    
    
    my()
    my(name='xiaodeng',age=28)
    my(name='xiaodeng', age=28, sex = 1)#name等name值是不需要引号的,请特别注意
  • 相关阅读:
    Python爬虫案例:爬取微信公众号文章
    MySQL计算两坐标距离并排序
    删库了一定要跑路吗?
    在python中列表删除和多重循环退出
    软件设计模式修炼 -- 观察者模式
    C# WPF:快把文件从桌面拖进我的窗体来!
    C#(七)基础篇—基本I/O操作
    (8)ASP.NET Core3.1 Ocelot Consul服务注册与发现
    iNeuOS工业互联操作系统,图表与数据点组合成新组件,进行项目复用
    对于经常接触的分页你确定你真的会吗
  • 原文地址:https://www.cnblogs.com/dengyg200891/p/4902886.html
Copyright © 2020-2023  润新知