Python基础教程(第3版)中文版 第7章 类和对象(笔记)

简介: Python基础教程(第3版)中文版 第7章 类和对象(笔记)

                             7 类和对象

1.对象魔法

1.多态

2.多态和方法

3.封装

4.继承


2.类

1.类是什么 类 类型

2.创建自定义类

class Person:

    def set_name(self,name):

        self.name = name

    def get_name(self):

        return self.name

self是对象本身,方法将第一个参数关联到它所属的示例,调用时无需提供

3.属性、函数和方法

4.再谈隐藏

默认,可从外部访问对象属性。

 让方法或属性成为私有在名称前加双下划线。 但是,实际上是在类定义中对这样的名称进行了转换,在开头加上了一个下划线和类名

就是说,python没有真正的私有方法/成员

5.类的命名空间

6.指定超类(父类)

class 类名(父类名)

7.继承

issubcclass  判断一 个类是另一个类的子类

__bases__ 属性,得到基类

isinstance 对象是某个类的实例

8. 多个超类

基类可以有多个(多重继承)

9.接口和内省

10.抽象基类

模块abc

@abstractmethod 标记抽象方法

3.面向对象设计的指南

-把相关的东西放在一起。

-不要让对象之间过于亲密

-慎用继承,尤其是多重继承。

-保持简单。

确保需要哪些类及需要哪些方法:

1.将问题描述记录下来,给名词、动词和形容词加标记。

2.在名词中找可能的类。

3.动词找方法

4.形容词找属性

5.把找出的方法和属性分配给各个类

改进:

设想使用场景。

小结

python的类和对象概念和C++的类和对象有很多相似的地方,共同的oop原则(多态、封装、继承)。也有很多不同的地方,比如c++中的私有和保护在python中不存在。


第7章出现的函数

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) 返回对象的类型


相关文章
|
3天前
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
10 1
|
6天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 插值 2
SciPy插值教程:介绍插值概念及其在数值分析中的应用,特别是在处理数据缺失时的插补和平滑数据集。SciPy的`scipy.interpolate`模块提供了强大的插值功能,如一维插值和样条插值。通过`UnivariateSpline()`函数,可以轻松实现单变量插值,示例代码展示了如何对非线性点进行插值计算。
10 3
|
9天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 4
本教程介绍了SciPy的空间数据处理功能,主要通过scipy.spatial模块实现。内容涵盖空间数据的基本概念、距离矩阵的定义及其在生物信息学中的应用,以及如何计算欧几里得距离。示例代码展示了如何使用SciPy计算两点间的欧几里得距离。
23 5
|
8天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 空间数据 6
本教程介绍了SciPy处理空间数据的方法,包括使用scipy.spatial模块进行点位置判断、最近点计算等内容。还详细讲解了距离矩阵的概念及其应用,如在生物信息学中表示蛋白质结构等。最后,通过实例演示了如何计算两点间的余弦距离。
17 3
|
7天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 7
本教程介绍了SciPy的空间数据处理功能,涵盖如何使用`scipy.spatial`模块进行点的位置判断、最近点计算等操作。还详细解释了距离矩阵的概念及其在生物信息学中的应用,以及汉明距离的定义和计算方法。示例代码展示了如何计算两个点之间的汉明距离。
13 1
|
10天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
21 2
|
11天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
23 3
|
11天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
27 1
|
4天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 插值 3
本教程介绍了SciPy中的插值方法,包括什么是插值及其在数据处理和机器学习中的应用。通过 `scipy.interpolate` 模块,特别是 `Rbf()` 函数,展示了如何实现径向基函数插值,以平滑数据集中的离散点。示例代码演示了如何使用 `Rbf()` 函数进行插值计算。
11 0
|
4天前
|
Python
SciPy 教程 之 Scipy 显著性检验 1
本教程介绍Scipy显著性检验,包括统计假设、零假设和备择假设等概念,以及如何使用scipy.stats模块进行显著性检验,以判断样本与总体假设间是否存在显著差异。
9 0