2020-04-30 python中类的创建和面向对象编程

面向对象编程,基于这些创建对象。编写类时,定义一大类对象都有通用行为。根据类来创建对象被称为实例化。

例1

创建Dog类


方法__init__

类中函数称为方法:__init__()定义成了包含:self , name , age。在这个方法定义中,形参self必不可少。通过实参传递name和age,self自动传递。通过实例访问变量的方法称为属性。

我们创建了一个dog类

类中所有def的函数称为方法

和普通函数区分开来的是调用的方法

__init__(self)有三个形参,第一个形参是self,且必须位于其他形参的前面。

python通过__init__创建dog类时,将自动传入实参self。

每个类关联的方法在调用的时候会自动传入实参self

让实例能够引用访问类中的属性和方法

访问属性

要访问实例的属性,可以用句点法表示

结果

例2

创建car类

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;

重写父类的方法

对于父类的方法不符合子类模拟的实物的行为,都可对其进行重写。可在子类中定义一个这样的方法,即它与要重写的父类方法同名。

将实例用作属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。