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


相关文章
|
4天前
|
数据安全/隐私保护 Python
Python以及基础语法保姆级教程(超详细)-3
Python以及基础语法保姆级教程(超详细)
|
4天前
|
存储 Python 容器
Python以及基础语法保姆级教程(超详细)-2
Python以及基础语法保姆级教程(超详细)
|
1天前
|
程序员 Python
GitHub爆赞!最适合新手入门的教程——笨方法学Python 3
“Python 是一门既容易上手又强大的编程语言。”这句话本身并无大碍,但需要注意的是,正因为它既好学又好用,所以很多 Python 程序员只用到了其强大功能的一小部分。 今天给小伙伴们分享的这份手册以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现。
|
2天前
|
存储 安全 Java
在Python中,引用和赋值机制是理解变量和数据对象之间关系的关键
【6月更文挑战第16天】Python变量是对象引用,不存储数据,指向内存中的对象。赋值`=`创建引用,不复制对象。`b = a`时,a和b指向同一对象。引用计数管理对象生命周期,垃圾回收在引用数为0时回收对象。理解这些机制对优化内存使用关键。
23 7
|
3天前
|
Python
Python 高质量类编写指南
Python 高质量类编写指南
31 15
|
4天前
|
算法 Java API
Python零基础入门-9类
Python零基础入门-9类
|
4天前
|
程序员 Python
GitHub爆赞!最适合新手入门的教程——笨方法学Python 3
“Python 是一门既容易上手又强大的编程语言。”这句话本身并无大碍,但需要注意的是,正因为它既好学又好用,所以很多 Python 程序员只用到了其强大功能的一小部分。 今天给小伙伴们分享的这份手册以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现。
|
Python Windows Linux