1
#!/usr/bin/env python


class Countries(object):
        def __init__(self,*_args,**_kwargs):
                self.name = 'japan'
                self.continent = 'asia'
                self.capital = 'tokyo'
                print _args
                print _kwargs

        def display(self):
                print self.name, self.continent,self.capital




iraq = Countries('iraq','bagdad','asia')

iraq.display()

india = Countries('india','delhi','asia')

india.display()

我在上面写了一个自学示例。我知道无论我总是分配什么参数

'japan' , 'asia' , 'tokyo'

到类的成员变量。我写上面是为了理解

   *_args and **_kwargs

上述程序的输出如下

('iraq', 'bagdad', 'asia')
{}
japan asia tokyo
('india', 'delhi', 'asia')
{}
japan asia tokyo

_args 在哪里('iraq', 'bagdad', 'asia')

和 __kwargs 是{}

为什么要打印一个空字符串,_kwargs并且所有参数都打印为一个列表_args

4

1 回答 1

4

因为您没有传递任何关键字参数。如果你这样做了Countries('Iraq', capital='Bagdad'),那么它会为 kwargs 打印一些东西。

于 2013-04-02T21:49:33.037 回答