zoukankan      html  css  js  c++  java
  • 参数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值是不需要引号的,请特别注意
  • 相关阅读:
    spring3创建RESTFul Web Service
    安装Maven
    如何使用 JSP JSTL 显示/制作树(tree) 菜单
    Eclipse EE导入maven工程
    安装PL/SQL Developer,链接本地64位Oracle
    Maven项目消除奇怪的红叉
    如何禁用Eclipse的Validating
    帮助文档总览
    MySQL下载安装、配置与使用(win7x64)
    C#知识点总结:Monitor和Lock以及区别
  • 原文地址:https://www.cnblogs.com/dengyg200891/p/4902886.html
Copyright © 2011-2022 走看看