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

    
                                        
    
  • 相关阅读:
    Xshell添加快捷按钮
    Go语言基础之21--反射
    Jenkins自动化CI CD流水线之7--流水线自动化发布PHP项目
    Jenkins自动化CI CD流水线之6--构建邮件状态通知
    Jenkins自动化CI CD流水线之5--pipeline
    Python练习-函数(方法)的定义和应用
    Python文件操作-文件的增删改查
    Python练习-不知道弄个什么鬼
    Python练习-短小精干版三级"片儿"
    Python练习-三级菜单与"片儿"无关!
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349462.html
Copyright © 2011-2022 走看看