Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1090252
  • 博文数量: 104
  • 博客积分: 3715
  • 博客等级: 中校
  • 技术积分: 1868
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-30 08:38
文章分类

全部博文(104)

文章存档

2013年(1)

2012年(9)

2011年(41)

2010年(3)

2009年(3)

2008年(47)

分类:

2011-01-01 14:14:08

    一直听说过Python的Duck Typing,即"If it walks like a duck and quacks like a duck, it is a duck."。但是没有认真思考过这句话的含义。今天看到了对它的解释:
    在Python中,如果我们想要调用一个对象的一个方法,其实,这个对象具体是什么类的实例并不重要,重要的是,这个对象所属的类有我们调用的这个方法(当然,指的是语义也类似,否则就是逻辑错误),这样,我们就可以正常使用这个对象,就好象它是我们在编写这行调用代码时“认为”的那种类型的对象一样。
    仔细想一下,这是一种极端灵活的策略。在Java中,通常用“接口”这种类型来约束这样的一类对象,而在Python中,几乎没有任何预先的限制和约束。这样是好还是坏?是不是容易隐藏某些“类型错误”?如果这样,那么面向对象中“继承”所体现的“is-a”的关系还有什么用?
阅读(1384) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~