zoukankan      html  css  js  c++  java
  • Python传递参数的多种方式

    Python中根据函数的输入参数以及是否有返回值可分为四种函数:

    1.无参数无返回值

    2.有参数无返回值

    3.无参数有返回值

    4.有参数无返回值

    Python 中参数传递有下列五种方式;

    1.位置传递 

    2.关键字传递

    3.默认值传递

    4.不定参数传递(包裹传递)

    5.解包裹传递

    一 位置传递

      没什么好过多讲解.

    1 # 位置传递实例:
    2 def fun1(a,b,c):
    3     return a+b+c
    4 
    5 print(fun1(1,2,3))

    输出:

    1 6

    二 关键字传递

        更具每个参数的名字写入函数参数

    1 # 关键字传递
    2 def fun2(a,b,c):
    3     return a+b+c
    4 
    5 print(fun2(1,c=3,b=2))

    输出:

    6

    三 参数默认值传递

      给函数的输入参数设定一个默认值,如果该参数最终没有输入,则使用默认参数出入函数.

    1 # 默认值传递
    2 def fun3(a,b=2,c=3):
    3     return a+b+c
    4 
    5 print(fun3(a = 1))

    输出:

    1 6

    四 包裹传递

      在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。这时候,包裹(packing)位置参数或者包裹关键字参数来进行参数传递会非常有用。

      下面是包裹位置传递的例子:

    1 def fun4(*name):
    2     print(type(name))
    3     print(name)
    4 
    5 fun4([1,2,3])
    6 fun4((1,2,3))
    7 fun4(1,2,3)

    结果:

    <class 'tuple'>
    ([1, 2, 3],)
    <class 'tuple'>
    ((1, 2, 3),)
    <class 'tuple'>
    (1, 2, 3)

    从上面的结果分析:

    在fun4的参数表中,所有的参数被name收集,根据位置合并成一个元祖(tuple),这就是包裹位置传递。

     五 解包裹传递

     1 def func1(a,b=1,*c,**d):
     2     print(a,b,c,d)    
     3 
     4  
     5 l = [3,4]
     6 dic = {'@':2,'#':3}
     7 
     8 func1(1,2,l,dic)
     9 print("---------**------------")
    10 func1(1,2,*l,**dic)
    11 func1(1,2,3,4,**dic)
    View Code

    运行结果:

    1 1 2 ([3, 4], {'@': 2, '#': 3}) {}
    2 ---------**------------
    3 1 2 (3, 4) {'@': 2, '#': 3}
    4 1 2 (3, 4) {'@': 2, '#': 3}
    View Code
  • 相关阅读:
    HTML5离线缓存问题
    一款我常用到的手机app
    修补: Vs调试时火狐自动增加www.和 .com
    linq to xml 控制投影的类型以解决无法返回匿名类型
    创建数据绑定模板控件 Asp.net
    发布一个IEJs调试开关,方便Vs调试
    TransmitFile下载文件(部分转载)
    如何在网页中添加地图
    MVC中Jqgrid的用法
    CSS中如何将li横向排列
  • 原文地址:https://www.cnblogs.com/taoke2016/p/8453258.html
Copyright © 2011-2022 走看看