X对象没有属性'data'

时间:2013-04-15 22:04:31

标签: python-2.7

我正在阅读Dive into python 2,我在这个例子中遇到了麻烦:

class FileInfo(dict):

   def __init__(self, filename = None):
      self['name'] = filename

   def __getitem__(self, key):
     return self.data[key]


if __name__ == '__main__':
   f = FileInfo('pixies.mp3')
   print f.__getitem__('name')

我收到了这个错误:

Traceback (most recent call last):
  File "FileInfo.py", line 12, in <module>
     print f.__getitem__('name')
  File "FileInfo.py", line 7, in __getitem__
     return self.data[key]
AttributeError: 'FileInfo' object has no attribute 'data'

我正在使用Python2.7

修改 实际上,这段代码工作正常:

class FileInfo(dict):

  def __init__(self, filename = None):
     dict.__setitem__(self, 'name', filename)

  def __getitem__(self, key):
     return dict.__getitem__(self, key)


if __name__ == '__main__':
   f = FileInfo('pixies.mp3')
   print f.__getitem__('name')

但是我想为什么另一个代码不起作用(是否潜入Python 2过时了?)

1 个答案:

答案 0 :(得分:0)

抱怨您的FileInfo没有数据属性。您可以通过在 init 功能下添加“self.data = XXX”来解决此问题。根据您的需要而定。您需要初始化 init

下的所有属性