面向对象编程,基于这些创建对象。编写类时,定义一大类对象都有通用行为。根据类来创建对象被称为实例化。
例1
创建Dog类
方法__init__
类中函数称为方法:__init__()定义成了包含:self , name , age。在这个方法定义中,形参self必不可少。通过实参传递name和age,self自动传递。通过实例访问变量的方法称为属性。
我们创建了一个dog类
类中所有def的函数称为方法
和普通函数区分开来的是调用的方法
__init__(self)有三个形参,第一个形参是self,且必须位于其他形参的前面。
python通过__init__创建dog类时,将自动传入实参self。
每个类关联的方法在调用的时候会自动传入实参self
让实例能够引用访问类中的属性和方法
访问属性
要访问实例的属性,可以用句点法表示
结果
例2
创建car类
结果
给属性指定默认的值
注意这段代码的第7行
我们给car类增加了一个属性,opo(里程表),初始化为0
第二行
初始化后不需要在init中输入形参
修改属性的值
我们写了一个函数来修改opo的值 #第13行
然后打印出来修改后的里程数 #第19行
我们修改函数,来保护汽车里程数不被调小
通过方法对属性的值进行递增
继承-父类和子类
super()函数,连接父类和子类
我们从car类继承一个子类new_car类,并且继承了car的方法和属性
1.创建子类时,必须父类在子类之前,并且也在这个文件里。class子类的括号里的参数必须是父类的名称。
2.super().__init__函数将父类和子类联系起来。父类也称为超类,所以函数名为super()
3.在代码中我们创建new_car类的一个实例。my_tesila,并且newcar __init__调用了父类的方法。输入参数
给子类定义属性和方法
我们在子类里创建了新的属性battery,并且初始化为70;
重写父类的方法
对于父类的方法不符合子类模拟的实物的行为,都可对其进行重写。可在子类中定义一个这样的方法,即它与要重写的父类方法同名。