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

猜你喜欢

转载自blog.csdn.net/qq_41068877/article/details/81937289
今日推荐