问一个实例的问题
>>> from UserDict import UserDict>>> class FileInfo(UserDict):
"store file metadata"
def __init__(self, filename=None):
UserDict.__init__(self)
self["name"] = filename
>>> a=FileInfo()
>>> a
{'name': None}
>>>
为什么最后一步,单独敲一个a或者print a出来的是一个字典值,而不是出现它的类型,比如下面的一个例子:
>>> class A:
def __init__(self, filename=None):
self={}
self["name"] = filename
>>> b=A()
>>> b
<__main__.A instance at 0x01CCF9E0>
这两个例子中,a和b都是一个类的实例,为什么最后出来的结果不一致?
而且对于第一个例子,有一个父类,对于self.data进行了初始化赋值,然后回到第一个例子中有一句
self["name"] = filename,请问理论上正确的应该是self.data["name"]=filename,为什么这里可以用self["name"]=....
这是父类的Init函数
class UserDict:
def __init__(self, dict=None, **kwargs):
self.data = {}
if dict is not None:
self.update(dict)
if len(kwargs):
self.update(kwargs)