• Python之*args,**kw


    #  *args代表非关键字可变参数的集合(元组),**kw代表关键字可变参数的集合(字典).

    classstudent(object):

           def__init__(self,id,*args,**kw):

                   print"id:",id

                    for i in args:

                            print"args:",i

                    for j in kw:

                            print"kw:",kw[j]

    student(1,2,3,name='pdk',sex='boy')

     

     

    输出:

    id: 1

    args: 2

    args: 3

    kw: pdk

    kw: boy

     

     

     

    补充:

    1、当函数的参数不确定时,可以使用*args和**kwargs。*args没有key值,**kwargs有key值

    2、*args表示任何多个无名参数,它是一个list;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前

    另外,说明一点*args和**kwargs的名称不是固定不变,实际格式的重点是前面的*,格式要求是*XXX和**XXX,只是因为习惯用法约定俗成的,如同实例方法用self和类方法用cls一样,测试下面两端代码你就能有一定理解了,对比代码如下:

    【代码一】定义关键字参数为**kw

    class Person(object):
        def __init__(self, name, gender, **kw):
            self.name = name
            self.gender = gender
            for k, v in kw.iteritems():
                setattr(self, k, v)

    p = Person('Bob', 'Male', age=18, course='Python')
    print p.age
    print p.course

    【代码二】定义关键字参数为**test

    class Person(object):
        def __init__(self, name, gender, **test):
            self.name = name
            self.gender = gender
            for k, v in test.iteritems():
                setattr(self, k, v)

    p = Person('Bob', 'Male', age=18, course='Python')
    print p.age

    哈哈,这格式简直了。。。。。

  • 相关阅读:
    Day 03
    Day 02
    Day 01
    re正则表达四
    python学习05之数据可视化
    python学习04之柱形图和热图
    python学习03之线图表
    python的学习02之数据处理
    python的学习01之csv文件处理
    中国大学排名实例
  • 原文地址:https://www.cnblogs.com/pannyvan/p/6133983.html
Copyright © 2020-2023  润新知