当前位置: 代码迷 >> 综合 >> Python中的类,继承和多态
  详细解决方案

Python中的类,继承和多态

热度:32   发布时间:2024-01-19 13:51:34.0

对象:

面向对象编程 是最有效的软件编写方法之一。在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。类来创建对象被称为实例化。

类:

        可以简单理解为模块,就是不同的分类,像食物、车、学习等都属于不同的类型,简称类。那么食物有辣的、甜的等;车有客车、轿车;学习有学习数学、学习python等,它们分别是每个不同类的不同的属性和行为。下面以代码为例:

class Dog(): """一次模拟小狗的简单尝试"""def __init__(self, name, age):"""初始化属性name和age"""self.name = nameself.age = agedef sit(self):"""模拟小狗被命令时蹲下"""print(self.name.title() + " is now sitting.")def roll_over(self):"""模拟小狗被命令时打滚"""print(self.name.title() + " rolled over!")

此处为dog类,它包括名字和年龄两个属性,通过__init__()方法给属性name,age赋值(以下简述一下__init()方法)

__init__()

        学过java的应该知道,该方法相当于构造方法,在python创建实例时自动执行不需手动调用,而且形参self是必须的,至于其他参数是可选的,如上例所示,name和age便是可有可无的

还接着上例分析,__init()方法将name和age赋值后,在下边定义了两个函数,函数在类中被称为方法,self引用自身是必选的,分别是小狗蹲下和打滚的两种行为

继承:

       编写类时并非总是要从空白开始。如果要编写的类是另一个现成类的特殊版本,可使用继承。

子类创建实例赋值时通过__init__()方法,并通过关键字super()调用

例如:

class Passenger_car():#定义客车类def __init__(self,weight,operate):#相当于构造方法,用于赋值,python创建实例时自动调用self.weight = weight#定义重量变量并赋值self.operate = operate#定义操作对象并赋值def out(self):#打印汽车属性的方法print("客车的重量是:"+self.weight+','+"驾驶方法是:"+self.operate+'\n')#打印语句sm_car = Small_car('125kg','踩油门')#创建小汽车实例并传值
sm_car.out()#调用小汽车对象的out方法pas_car = Passenger_car('521kg','转动方向盘')#创建客车实例并传值
pas_car.out()#调用客车对象的out方法class School_car(Passenger_car):def __init__(self,weight,operate,mark):super().__init__(weight,operate)self.mark = '东风路28路公交车'def out(self):print("这是校车")

校车是客车的子类,它有不同于父类Passenger_car的属性mark,并重写了父类的out方法。

        继承可完全理解为扩展以及区别,有了继承不会让我们编写程序时总是重复不必要的代码,减少工作量。

多态:

        多态和Java程序的多态其实相差不大,多态即一种实物的多种形态,因为python和java不同的是,python不支持重载,而且python中多态体现的并不明显。继承中每个对象都有自己单独的方法,避免有重名的,如果我们创建实例时 要调用该方法,少则还好,如果是上百个上千个呢,此时多态便方便了我们不少。此时我们可以对象封装的一个函数中,在循环遍历每一个对象,调用方法,这种做法便节约了大量的时间和没必要的臃肿代码。

  相关解决方案