类的定义
面向对象
类=面向对象
如何构建一个类
class 名字
命名规则:类的第一个字母需要大写 类的名字不建议用下划线连接
例如:Student_Homework
类的定义与调用最好不要写在一个模块里
函数与方法的区别
方法:设计层面
函数:程序运行、过程式的一种称谓
类是面向对象最基本的概念
变量只定义在模块里面我们称之为变量
变量出现在类下面则被称做数据成员
类与对象
类是显示世界或思维世界中的实体在计算机中的反映
它将数据以及这些数据上的操作封装在一起
类就像是一个模板一样,通过类可以产生很多个对象
构造函数
构造函数的调用是自动进行的 当要进行实例化时 python会自动调用__init__函数
也可以自己主动(显式)调用,但一般很少用显示调用
构造函数是一个模板生成不同的对象
区别模块变量与类中的变量
在python中局部变量不会覆盖全局变量
类变量:
如何访问类变量
实例变量:
类与对象的变量查找顺序
定义实例方法时 是需要定义self方法的,但是调用时是不需要定义self的。
在实例方法中访问实例变量与类变量
实例方法
类方法
类方法的调用
定义实例方法使用的是self 但是self在实例方法中可以任意更改名字
定义类方法使用的是cls
类方法和实力方法的区别 :实例方法所关联的是对象
而类方法所关联的是类本身定义类方法时要加一个装饰器
用对象调用类的方法(但是不建议使用)
静态方法
定义静态方法时需要在前面加一个装饰器
静态方法可以用类调用或者是对象调用
静态方法的内部也可以访问类变量
显式的传入类
成员可见性:公开和私有
变量和方法统称为成员
making方法的使用
私有的是在变量名或者方法名前 加 __
python中私有变量的隐藏只是换了一个名称
继承
面向对象三大特性: 继承性 封装性 多态性
继承性:
避免重复的定义和重复的方法
一个文件定义一个类
子类方法调用父类方法:super关键字
构造函数的实质是可以把它看成一个实例方法
子类调用父类时优先使用super关键字
当子类的方法与父类的方法重名时 会优先调用子类的方法
super关键字的用法