zoukankan      html  css  js  c++  java
  • Python学习之路:函数的非固定参数

    def test(x,y=2):
        print(x)
        print(y)
    
    test(1,3)
    
    #默认参数特点:调用函数的时候,默认参数非必传
    
    #用途:1.默认值
    
    def conn(host,post=3306):
        pass
    
    conn()
    -------------------------------------------------------------------------------
    def test(x,y,z=2):
        print(x)
        print(y)
        print(z)
    
    test(1,2)
    test(1,2,3)#不论是否有默认参数,实参都不能比形参多
    
    #实参数目不固定,形参怎么定义-->参数组
    
    def test(*args): #实参数据不固定用"*"开头
        print(args)
    
    test(1,2,3,4,5,5)
    test(*[1,2,3,4,5])# *args= *[1,2,3,4,5]--> args=tuple([1,2,3,4,5])
    
    # *args:接收N个位置参数,转换成元组的方式
    def test1(x,*args):
        print(x)
        print(args)
    
    test1(1,2,3,4,5,6,7)
    
    #**kwargs: 把N个关键字参数,转换成字典的方式
    def test2(**kwargs):
        print(kwargs)
        print(kwargs['name'])
        print(kwargs['age'])
    
    test2(name='alex',age=8,sex='F')
    test2(**{'name':'alex','age':8})
    
    #位置参数+字典
    def test3(name,**kwargs):
        print(name)
        print(kwargs)
    
    test3('alex',**{'age':8,'sex':'F'})
    test3('alex',age=8,sex='M')
    
    #默认参数+字典
    def test4(name,age=18,**kwargs):#参数组在最后
        print(name)
        print(age)
        print(kwargs)
    
    test4('alex',sex='m',hobby='tesla')
    test4('alex',sex='m',hobby='tesla',age=3)
    
    def test5(name,age=18,*args,**kwargs):#参数组在最后
        print(name)
        print(age)
        print(args)
        print(kwargs)
    
    test5('alex',sex='m',hobby='tesla',age=3)
    
  • 相关阅读:
    QT获取句柄
    java多线程关键字volatile、lock、synchronized
    Java几种常见的设计模式
    将博客搬至CSDN
    0228-0308的笔记
    深入理解es6-Promise对象
    彻底理解正则
    es6学习笔记-class之继承
    es6学习笔记-class之一概念
    arguments对象详解
  • 原文地址:https://www.cnblogs.com/xiaobai005/p/7835264.html
Copyright © 2011-2022 走看看