好记性不如烂笔头,对之前阅读书籍进行梳理与总结,此文为《Python3面向对象编程》阅读笔记。
文章目录- 第一章
- 第二章
几个概念
组合: 将几个对象收集在一起生成一个新对象的行为。
聚合:聚合几乎和组合概念相同,区别在于聚合的对象可以独立存在,比如棋盘上的位置不可能与另外一个棋盘产生关联,因此我们说棋盘是由位置组成的,但是棋子可以独立于棋具存在,因此称它与棋具之间为聚合关系。
多态:多态是根据子类的不同实现而区别对待父类的能力,Python中的这种多态通常被称之为“鸭子类型”,“如果它走路像鸭子,游泳像鸭子,那么它就是一只鸭子”。我们不关心它是否真的是一只鸭子,只需要知道它可以游泳或者走路即可。
第二章如何在Python中创建类和继承对象
如何为Python对象添加属性和行为
如何将类组织成包和模块
如何建议人们不要乱动我们的数据
类名必须遵循标准的python变量名规则(必须以字母/下划线开头,并且只能由字母,下划线,数字组成),建议类名采用驼峰格式(CamelCase)命名。
类中方法与正常函数之间的区别之一是,所有方法都有一个必要的参数,依照惯例,这个参数通常命名为self,表示对方法所调用对象的引用。
大多数面向对象编程语言都有构造函数的概念,是创建对象时进行创建和初始化的特定方法。Python有一点不一样,它同时拥有构造函数和初始化方法。
python的初始化方法和其他方法一样,除了拥有一个特定的名字__init__,开头和结尾的双下划线意味着这是一个特殊的方法(永远不要以双下划线开头和结尾来定义你自己的方法,因为未来python设计者可能将其作为特殊用途)。
Python通过字符串文档进行文档注释,试着输入或者加载(记住,python -i filename.py)这个文件到交互解释器中,然后在Python提示符处输入help(Point) enter。就可以看到这个类完善的格式文档。
Python不像c++或者java一样,拥有访问权限的概念,一些属性和方法可以被标记为私有。python严格来说,类的所有方法和属性都是对外公开的,如果我们想要说明,某个方法不应该对外公开,那么可以在他的文档字符串里面表明这个方法仅内部使用(更好的方法是,介绍对外公开的API如何使用),依照惯例,我们也可以在属性和方法前面加一个下划线字符,Python程序员就会明白“这是一个内部变量,直接访问它之前请务必三思”,当然还有另外一种方式可以更加强势地表明外部对象不能访问某个属性或方法:用双下划线作为前缀。



