2019-05-07 def __init__(self, *args, **kwargs) python class init问题

python在编写类的时候经常会出现这样的写法:

def __init__(self, *args, **kwargs):    

        doSth()

这种写法代表这个方法接受任意个数的参数,其中不指定key的参数会以list形式保存到args变量中,指定key的参数会以dict的形式保存到kwargs变量中。

示例如下:

函数如下:

def helloWorld(*args, **kwargs):

    print('non-key arguments are:')

    for i in args:

        print(i)

    print ('key-value arguments are:')

    for k,w in kwargs.items():

        print(k + '=' + w)

如果调用以下代码:

helloWorld('I','know',whom='you',what='understrand')

运行结果如下:

non-key arguments are:

I

know

key-value arguments are:

whom=you

what=understrand

可以看出来,没有key的参数是:I和Know

而指定了key的参数是you(key为whom)和understand(key为what)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,418评论 0 10
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,877评论 0 38
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,801评论 0 8
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,789评论 0 23
  • 妈妈,你会笑我的 整理完订单,终于准备睡啦! 刚丢了手机躺下去,看到妞萌萌的睡姿,又想起她临睡前和我哭诉的那一幕,...
    萧大小姐阅读 178评论 0 0