zoukankan      html  css  js  c++  java
  • Python函数的4种传值的方式

    Python函数的4种传值的方式param,param=value,*param,**param

    必选传参param

    # 必选参数 func(param):
    # 1、定义函数时的参数个数,顺序已定义好,在调用函数调时的参数个数、顺序必须一致,不能多,也不能少,也不能乱(和之前的顺序一致),因此叫必选参数,这是最常用的传参方式
    def test(param1,param2,param3):
        print param1,param2,param3
    
    test(1,"hello",True)
    test(True,1,"hello")
    
    """
    执行结果:
    1 hello True
    True 1 hello
    """
    

    默认传参param=value

    # 默认参数func(param=value):
    # 1、定义函数时,已为参数设定一个默认值,假如调用函数时不传参,在函数内部使用参数时的值则为默认值,传参时则和必选参数一样使用
    # 2、如果必选参数和默认参数同时存在,则默认参数必须跟在必选参数后面
    # 3、如果有多个默认参数,调用时顺序可以不一致,但是必须要显式表明是哪个默认参数,例如 param2=100,但是建议统一按照函数定义的顺序进行使用
    def test(param1,param2=100,param3=True):
        print param1,param2,param3
    
    test(1) # 默认参数可以不传
    test(1,"hello",False) # 多个默认参数时,调用顺序一致
    test(1,param3=False,param2="hello") # 调用顺序也可以不一致
    """
    执行结果:
    1 100 True
    1 hello False
    1 hello False
    """
    

    可选参数*param

    # 1、定义函数时,当传入的参数个数不确定,可能为0个,1个,2个.。。。多个时,则可用可选参数表示,书写格式为参数名称前带一个*号
    # 2、可选参数在调用时的形式是以一个tuple元组形式存在,即param是一个元组
    # 3、当定义了一个可变参数时,可以把一个列表或者元组作为一个整体的参数进行传递,只需要在传递的时候,列表或者元组变量名前带*则可
    # 4、当有必选参数,默认参数,可选参数时,必须按照必选参数,默认参数,可选参数进行定义
    # 5、推荐写法是*args,但是写成啥都可以
    def test(param1,param2=100,*param3):
    
        def printP12():
            print param1,param2
    
        def printP123():
            print param1,param2,param3,type(param3)
    
        printP123() if len(param3)!=0 else printP12()
    
    test(1,2,3,4,5,6)
    li = [1,2,3,4]
    tu = (1,2,3,4)
    test(1,2,*tu)
    """
    运行结果:
    1 2 (3, 4, 5, 6) 3 <type 'tuple'>
    1 2 (1, 2, 3, 4) 1 <type 'tuple'>
    """
    

    关键字参数**param

    # 1、定义函数时,当传入的参数个数不确定,可能为0个,1个,2个.。。。多个时,则可用关键字参数表示,它与可变参数区别在于传参时必须使用默认参数的形式进行传参,例如param1=1,param2=2
    # 2、关键字参数在调用时的形式是以一个dict字典形式存在,即param是一个字典
    # 3、当定义了一个关键字参数时,可以把一个列表作为一个整体的参数进行传递,只需要在传递的时候,字典变量名前带**则可
    # 4、当有必选参数,默认参数,可选参数,关键字参数时,必须按照必选参数,默认参数,可选参数,关键字参数进行定义
    # 5、推荐写法是**kwargs,但是写成啥都可以
    def test(param1,param2=100,*param3,**param4):
    
        def printP12():
            print param1,param2
    
        def printP1234():
            print param1,param2,param3,param4,type(param4)
    
        printP1234() if len(param3)!=0 and len(param4)!=0 else printP12()
    
    test(1,10,11,a=1,b=2,c=3)
    dict = {"a":1,"b":2,"c":3}
    test(1,10,11,**dict)
    """
    执行结果:
    1 10 (11,) {'a': 1, 'c': 3, 'b': 2} <type 'dict'>
    1 10 (11,) {'a': 1, 'c': 3, 'b': 2} <type 'dict'>
    """
    
  • 相关阅读:
    flask的Request对象
    Spinner实现列表下拉功能
    ListView用法
    DatePickerDialog和TimePickerDialog(基于对话框显示时间和日期)
    DataPicker以及TimePicker显示时间和日期(屏幕上显示)
    Floyd-Warshall算法(最短路)
    Bellman-Ford算法(最短路)
    前向星
    css3变形与动画
    CSS3背景 background-size
  • 原文地址:https://www.cnblogs.com/lazy-sang/p/13932882.html
Copyright © 2011-2022 走看看