4、Python面向对象编程入门与实践

Python面向对象编程入门与实践

1. 组合关系与继承关系的比较

在设计中,组合关系乍一看不如基于继承的关系自然,但它有一个显著优势,即允许我们在不向设计中添加新类的情况下添加新类型的贡献。继承在子类有某种特化时最为有用,特化是指在子类上创建或更改属性或行为,使其与父类有所不同。单纯为了识别不同类型的对象而创建一堆空类似乎很愚蠢,这种态度在Python设计者中更为常见,而在Java等“一切皆对象”的程序员中不太普遍。

例如下面这个继承关系的示例图:

+Title
+UPC
+Subject
+Contributors
LibraryItem
Author
Contributor
Actor
Director
Editor
Artist
+Locate()
+Name
*
*

我们可以看到有一堆实际上没有做任何事情的子类。这提醒我们,有时认识到何时不使用面向对象原则很重要,对象只是工具,而非规则。

2. 面向对象设计的思考练习
  • 回顾已完成项目 :思考最近完成的一个编程项目,确定设计中最突出的对象。尽可能多地为该对象想出属性,如颜色、重量、大小、利润、成本、名称、ID号、价格、风格等。思考这些属性的类型,是基本类型还是类,是否有些属性实际上是伪装的行为。有时看似是数据的东西实际上是从对象的其他数据计算得出的,我们可以使用方法来进行这些计算。还要考虑该对象有哪些其他方法或行为,哪些对象调用了这些方法,它们与该对象有什么样的关系。
  • 分析即将进行的
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值