python基础教程(第3版)笔记-第七章

我是不熟悉面向对象编程这一概念,当然我更不清楚构造函数。(本人专业不是计算机,且对计算机编程一直以来都是门外汉,更别说是菜鸟或者计算机小白,谈不上,扯远了~~)
不熟悉面向对象编程这一概念的,可以参见这里里面有一个简单的例子说明。

7.1对象魔法

我尽量慢慢来,主要是这一章节有点看不下去。
在面向对象编程中,术语对象大致意味着一系列数据以及一套访问和操作这些数据的方法。使用对象而非全局变量和函数的原因有多个,下面列出了使用对象的最重要的好处:
多态:可对不同类型的对象执行相同的操作;
**封装:**对外部隐藏有关对象工作原理的细节;
**继承:**可基于通用类创建出专用类。

7.1.1多态

有多种形态,大致意味着即便你不知道变量指向哪一种对象,也能够对其执行操作,且操作的行为将随对象所属的类型而异。

7.1.2 多态和方法

你收到一个对象却根本不知道它是如何实现的。
像这样与对象属性相关联的函数称为方法。
如果有一个变量你无需知道它是字符串还是列表就能调用方法count:只要你向这个方法提供一个字符作为参数,就能正常运行。

7.1.3 封装

封装指的是向外部隐藏不必要的细节。封装和多态还是有点区别的。

这一章我是很难理解的,直接略过~

7.2 类

下面说一下类。
类是什么?其实就是一种对象。每个对象都属于特定的类,并被称为该类的实例。
说个通俗易懂的,如果说你在窗外看到一直鸟,那么这只鸟就是“鸟类”的一个实例。鸟类是一个非常通用的类,它有多个子类:你看到的那只鸟可能属于子类“云雀”。你可以将“鸟类”视为由所有鸟组成的集合,而,云雀是其一个自己。一个类的对象为另一个类的对象的子集时,前者就是后者的子类。所以,“云雀”是鸟类的一个子类,而“鸟类”为“云雀”的超类。

本章介绍的新函数

函数 描述
callable(object) 判断对象是否是可调用的(如是否是函数或方法)
getattr(object,name[,default]) 获取属性的值,还可提供默认值
hasattr(object, name 确定对象是否有指定的属性
isinstance(object, class) 确定对象是否是指定类的实例
issubclass(A, B) 确定A是否是B的子类
random.choice(sequence) 从一个非空序列中随机地选择一个元素
setattr(object, name, value) 将对象的指定属性设置为指定的值
type(object) 返回对象的类型

总结一下,这一章感觉很不清楚,可能等到实践的时候会比较清楚了解。

下一章要介绍异常处理。

你可能感兴趣的:(python学习)