| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 539 人关注过本帖
标题:问一个实例的问题
只看楼主 加入收藏
maclxp
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-8-18
结帖率:0
收藏
已结贴  问题点数:0 回复次数:1 
问一个实例的问题
>>> 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)
搜索更多相关主题的帖子: 实例 
2010-08-18 10:30
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:57
帖 子:2012
专家分:7306
注 册:2007-12-17
收藏
得分:20 
第一个问题,给你看个例子
>>> class Test:
...     def __repr__(self):
...         return 'haha'
...
>>> t = Test()
>>> t
haha
>>>

第二个问题
self.data["name"]和self["name"]是两个互不相干的属性,两者无任何关系

那一年,苍井空还是处女
2010-08-18 23:54
快速回复:问一个实例的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017876 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved