zoukankan      html  css  js  c++  java
  • python学习手册:第十八章——参数

    函数返回值

    函数返回值可以通过(,)进行收集,即函数可以通过返回一个元组来达到返回多个值的目的

    函数的匹配语法

    • func(value) 常用的调用方法
    • func(name=value) 关键字参数,通过变量名进行匹配
    • func(*sequence) 以name传递所有的对象,并作为独立的基于位置的参数
    • func(**sequence) 以name或成对的传递所有的关键字/值,并作为独立的关键字参数
    • def func(name) 常规参数:通过位置或者变量名进行匹配
    • def func(name=value) 如果没有在调用中传递则取默认值
    • def func(*name) 匹配并收集(在元组中)所有包含位置的参数
    • def func(**name) 匹配并收集(在字典中)所有包含位置的参数
    • def func(*args,name) 参数必须在调用中按照关键字传递

    参数及调用函数的顺序

    • 在函数调用中,参数必须的顺序:任何位置参数,后面跟着任何关键字参数(name = value)和*sequence形式的组合,后面跟着**dict形式
    • 在函数头部,参数必须以此顺序出现,任何一般参数,紧跟着任何默认参数(name=vcalue),后面是*name的形式,后面跟着任何name或name=value keyword-only参数,后面跟着**name形式

    python函数赋值时参数匹配的顺序

    1. 通过位置匹配飞关键字参数
    2. 通过匹配变量名分配关键字参数
    3. 其他额外的非关键字参数分配到*name中
    4. 其他的关键字参数分配到**name中
    5. 用默认值分配给在头部未得到分配的参数

    关键字参数和默认参数的实例

    关键字参数

    需要注意的是无关键字参数的调用必须在有关键字参数调用的前面

    def f (a,b,c):
        print(a,b,c)
    f(1,2,3)
    f(c=3,b=2,a=1) 
    f(1,c=3,b=2)
    #1 2 3
    #1 2 3
    #1 2 3
    

    默认参数

    def f (a=1,b=2,c=3):
        print(a,b,c)
    f(3,5)
    f(3,c=5)
    #3 5 3
    #3 2 5
    

    任意参数

    • func(*args) 此参数收集所有未匹配到的和位置有关的参数到一个新的数组中
    • func(**args)此参数收集所有未匹配到的关键字参数到一个新的字典中
    def f (a,b=2,*args): #收集位置参数
        print("a=",a,"b=",b,"args=",args)
    f(1,3,3456,4,5)
    def f (a,b=2,**args): #收集关键字参数
        print("a=",a,"b=",b,"args=",args)
    f(1,b=3,c=4,d=5)
    def f (a,b=2,*arg,**args): #混用
        print("a=",a,"b=",b,"arg=",arg,"args=",args)
    
    # a= 1 b= 3 args= (3456, 4, 5)
    # a= 1 b= 3 args= {'c': 4, 'd': 5}
    # a= 1 b= 2 arg= (3,) args= {'c': 4, 'd': 5}
    

    解包参数

    把一个序列拆分开来分别赋值给函数的参数

    def func(a,b,c,d):
        print(a,b,c,d)
    l = [1,23,4,5]
    t = (1,2,3,4)
    s = {1,2,3,4}
    d = {'a':1,'b':2,'c':3,'d':4}
    func(*l)
    func(*t)
    func(*s)
    func(**d)
    #1 23 4 5
    # 1 2 3 4
    # 1 2 3 4
    # 1 2 3 4
    
  • 相关阅读:
    JS DOM编程艺术——DOM获取元素—— JS学习笔记2015-7-6(第77天)
    JS DOM编程艺术的学习—— JS学习笔记2015-7-5(第76天)
    面向对象的程序设计1 理解对象—— JS学习笔记2015-7-4(第75天)
    JS 引用类型 Math 对象 JS学习笔记2015-7-3(第74天)
    JS 引用类型和值类型
    HTML5之应用缓存---manifest---缓存使用----Web前端manifest缓存
    易懂 易上手的cookie 最简单明了 js中cookie的使用方法及教程
    iOS开发-面试总结(十一)
    iOS开发-面试总结(十)
    iOS开发-面试总结(九)
  • 原文地址:https://www.cnblogs.com/yingyingdeyueer/p/11852942.html
Copyright © 2011-2022 走看看