zoukankan      html  css  js  c++  java
  • 7.1 可接受任意数量参数的函数:

    http://blog.csdn.net/
    使用def 语句定义函数是所有程序的基础,
    
    7.1 可接受任意数量参数的函数:
    
    问题:
    
    你想构造一个可接受任意数量参数的函数:
    
    
    为了能让一个函数接受任意数量的位置参数,可以使用一个*参数,例如:
    
    
    def avg(first, *rest):
      print  first;
      print  sum(rest)
    avg(1,2,3,4)
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/Django/a44.py
    1
    9
    
    Process finished with exit code 0
    
    
    
    在这个例子中,rest是由所有其他位置参数组成的元组,
    
    然后我们在代码中把它当成了一个序列来进行后续的计算
    
    def avg(first, *rest):
      print  first;
      print  sum(rest)
      print type(rest)
    avg(1,2,3,4)
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/Django/a44.py
    1
    9
    <type 'tuple'>
    
    
    此时的rest被当成了tuple
    
    
    
    为了接受任意数量的关键字参数,使用一个以**开头的参数,比如:
    
    
    def avg(first, *rest):
      print  first;
      print  sum(rest)
      print type(rest)
    def make_element(name,value,**attrs):
      print attrs
      print type(attrs)
    make_element('aa','bb',size='large', quantity=6,sex='man')
    
    
    这时候的attrs 是一个包含所有被传入进来的键值对字典
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/Django/a44.py
    {'quantity': 6, 'sex': 'man', 'size': 'large'}
    <type 'dict'>
    
    
    如果你还希望某个函数能同时接受任意数量的位置参数和关键字参数,可以同时使用*和**.
    
    
    def anyargs(*args, **kwargs):
    print(args) # A tuple
    print(kwargs) # A dict
    
    
    使用这个函数时,所有位置参数会被放到args元组中,所有关键字参数会被放到kwargs中。
    
    
    def anyargs(*args, **kwargs):
        print '11111111111111'
        print(args) # A tuple
        print '22222222222222'
        print(kwargs) # A dict
    anyargs('a','b','c','d',size='large', quantity=6,sex='man')
    
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/Django/a45.py
    11111111111111
    ('a', 'b', 'c', 'd')
    22222222222222
    {'quantity': 6, 'sex': 'man', 'size': 'large'}
    
    Process finished with exit code 0

    
                                        
    
  • 相关阅读:
    Docker 设置阿里云镜像
    Linux 安装Navicat Premium 15
    Ubuntu常用工具安装
    Docker安装MongoDB、MySQL、Jenkins、Gitlab、Nginx
    Ubuntu18.04修改apt-get源
    Spring定时任务
    Quartz学习总结
    cron表达式
    将VirtualBox里安装的虚拟机在后台运行方法(在状态栏隐藏窗口)
    npm小结
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349462.html
Copyright © 2011-2022 走看看