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

    
                                        
    
  • 相关阅读:
    虚拟机安装配置
    大整数加法 面试题
    结构体
    操作文件
    Gcd HDU
    牛客练习赛47 A DongDong破密码 (异或性质,递推)
    ACM常用之 异或运算的性质。
    Wannafly挑战赛22 C 多项式(大数,多项式极限)
    大数全能模板
    Wannafly挑战赛22 D 整数序列 (线段树维护三角函数值)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349462.html
Copyright © 2011-2022 走看看