面向对象编程2.0 day9
学习计划:
- day 9 的内容
- spyder 的tutorial
- PEP 8的续行
- day 2的问题解决
学习内容:
对于python
- 通过
@property
对类属性的保护,使得类属性可以访问,不能修改;如果要修改,那么使用@函数名.setter
- 动态语言。python是一个动态语言,即在定义好类之后,可以通过直接给对象新属性赋值,创建新的属性,或者给未赋值的属性赋值,但是一旦使用魔法方法
__slots__
,绑定属性,则只有这些属性可以动态绑定。但只对当前类的属性有效,对子类无效 - 静态方法。可以通过静态方法
@staticemethod
在生成对象之前,对参数进行一个判断。因此该方法只能由类调用。 - 类方法。与静态方法类似,通过
@classmethod
获取相关类的信息,并且可以创建出该类的对象,参数必须是cls
. - 类之间的关系
-
is-a
:继承关系,如“学生是人” -
has-a
:关联关系,如“汽车和引擎” -
use-a
:依赖关系,如“学生使用课本学习”
-
- 继承和多态(减少代码的重复)
- 继承:子类继承父类的一切行为和属性,遵照里氏替换原则
- 多态:在继承的关系下,子类拥有同样的行为名字,经过方法重写,拥有不一样的行为的实现
对于spyder
- 知晓了格式化的注释,所谓格式化的注释就是当光标移到函数名字或者其他代码时,
Ctrl-I
,调用help函数会得到该函数或代码的一个注释文件。我们可以通过特殊的格式 reStructuredText (reST)来进行写文档注释,或者通过numpydoc进一步学习科学化的惯例 - 学会了调试。终于不用一个一个反复运行啦,可喜可贺。在debug时,注意观察变量查看器,修改参数值,调试程序
对python的话
好像越来越糊涂了,感觉类这一块,有太多要学习的,而且至今不明白类的价值,哎,我真是一个糊里糊涂的母亲,总想多做点什么,但是又好像什么都没有做,这才第9天,不虚,稳扎稳打才是真!
未做的事:
- property中的修改器和访问器是怎么使用的,需进一步了解property的进一步学习
- 关联关系和依赖关系,怎么区分或者区分的意义?
- 具体怎么使用,多练习
- debug中的continue还不熟
- day7 和 day9的案例
- 稍微可以停一下,看看简明教程