1.python支持面向对象的三大特征
- 封装
- 继承(子类继承父类同样可 以继承父类的变量和方法)
- 多态
2.类和对象
类是面向对象的重要内容,可以把类当成一种自定义类型,可以使用类来定义变量,也可以使用类来创建对象
2.1 定义类
- 对象(object,也称为实例 instance),自然界中具体存在的实体
- 类(class),利用(属性和方法)对实体的抽象
- 类的作用:创建对象,派生子类
2.2.1 类定义实例
- python类名:由一个或多个有意义的单词连缀(中间不使用分隔符),且首字母大写
:
作为类体的开始,统一缩进部分作为类体- 类体中最重要的是
类变量和类方法
,定义顺序随意,且可以相互调用 - 类变量:属于类本身,用于定义该类本身所包含的状态数据
name = '张三'
- 实例变量:属于该类的对象(实例)
self.name = name
- 方法: 属于该类的对象(实例),用于定义功能和行为
类中定义的方法默认是实例方法
- 实例方法第一个参数(self)会被绑定到方法的调用者(该类的实例),所以至少定义一个参数,一般为
self
- 类变量和实例变量可以在任意地方动态添加和删除(用del语句)
class 类名:
执行语句
0~多个类变量
0~多个方法
2.2.2 定义空类
- 使用
pass
占位
class 类名:
pass
2.2.3 init,构造方法
- 构造方法用于构造该类的对象(python调用构造方法,返回类对象,不用new)
- python自带默认构造方法(只包含一个self参数)
2.2.4 类变量,实例变量,方法实例
class sheep:
# 定义类变量
name = '绵羊'
# 构造方法
def __init__(self,name = '山羊'):
# 定义实例变量
self.name = name
# 定义一个方法
def showName(self,name):
print(name)
输出:
3. 属性和方法变成私有
- 在属性前加
__
变成私有,name mangling 技术
- python的公有变私有
相当于名字重写
- 利用函数可以访问到私有变量
3.1 公有
3.2 私有(name mangling 技术)
3.3 访问私有变量
- 利用
实例._类名__属性名
- 利用方法