关于“Python”的核心知识点整理大全20-2

简介: 关于“Python”的核心知识点整理大全20

关于“Python”的核心知识点整理大全20-1 https://developer.aliyun.com/article/1424489

9.3 继承

编写类时,并非总是要从空白开始。如果你要编写的类是另一个现成类的特殊版本,可使用 继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类, 而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。


9.3.1 子类的方法__init__()

创建子类的实例时,Python首先需要完成的任务是给父类的所有属性赋值。为此,子类的方 法__init__()需要父类施以援手。


例如,下面来模拟电动汽车。电动汽车是一种特殊的汽车,因此我们可以在前面创建的Car 类的基础上创建新类ElectricCar,这样我们就只需为电动汽车特有的属性和行为编写代码。


下面来创建一个简单的ElectricCar类版本,它具备Car类的所有功能:


electric_car.py

1 class Car():
 """一次模拟汽车的简单尝试"""
 def __init__(self, make, model, year):
 self.make = make
 self.model = model
 self.year = year
 self.odometer_reading = 0
 def get_descriptive_name(self):
 long_name = str(self.year) + ' ' + self.make + ' ' + self.model
 return long_name.title()
 def read_odometer(self):
 print("This car has " + str(self.odometer_reading) + " miles on it.")
 def update_odometer(self, mileage):
 if mileage >= self.odometer_reading:
 self.odometer_reading = mileage
 else:
 print("You can't roll back an odometer!")
 def increment_odometer(self, miles):
 self.odometer_reading += miles
2 class ElectricCar(Car):
 """电动汽车的独特之处"""
3 def __init__(self, make, model, year):
 """初始化父类的属性"""
4 super().__init__(make, model, year)
5 my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name()) 


首先是Car类的代码(见1)。创建子类时,父类必须包含在当前文件中,且位于子类前面。 在2处,我们定义了子类ElectricCar。定义子类时,必须在括号内指定父类的名称。方法__init__() 接受创建Car实例所需的信息(见3)。


4处的super()是一个特殊函数,帮助Python将父类和子类关联起来。这行代码让Python调用 ElectricCar的父类的方法__init__(),让ElectricCar实例包含父类的所有属性。父类也称为超 类(superclass),名称super因此而得名。


为测试继承是否能够正确地发挥作用,我们尝试创建一辆电动汽车,但提供的信息与创建普 通汽车时相同。在5处,我们创建ElectricCar类的一个实例,并将其存储在变量my_tesla中。这 行代码调用ElectricCar类中定义的方法__init__(),后者让Python调用父类Car中定义的方法 __init__()。我们提供了实参'tesla'、'model s'和2016。


除方法__init__()外,电动汽车没有其他特有的属性和方法。当前,我们只想确认电动汽车 具备普通汽车的行为:


2016 Tesla Model S

ElectricCar实例的行为与Car实例一样,现在可以开始定义电动汽车特有的属性和方法了。

目录
相关文章
|
1月前
|
存储 搜索推荐 数据库
关于“Python”的核心知识点整理大全58
关于“Python”的核心知识点整理大全58
37 2
|
4天前
|
存储 Python 容器
Python新手入门,这些基础知识点你掌握了吗?
【6月更文挑战第12天】Python是新手友好的编程语言,具备解释型、面向对象、动态类型和跨平台特性。基础知识包括:变量(如整数、浮点数、字符串、列表、元组、字典和集合),运算符与控制流(如条件语句和循环),以及函数的定义与调用。要精通Python,还需学习更多如面向对象编程、模块、文件操作等内容。开始你的Python学习之旅吧!
|
10天前
|
数据采集 机器学习/深度学习 数据挖掘
python运用知识点说明
Python涵盖广泛,从基础语法(变量、数据类型、字符串操作)到高级特性(装饰器、迭代器、闭包)。常用库包括NumPy, Pandas(数据处理),Scikit-learn, TensorFlow(机器学习),Django, Flask(Web开发),Scrapy(网络爬虫)。应用于Web开发、数据分析、系统运维、游戏开发和网络爬虫。Python历经1.x、2.x到3.x版本,3.x引入重大更新,强调Unicode和函数打印等,与2.x不兼容。掌握这些能提升开发效率。【6月更文挑战第4天】
27 2
|
26天前
|
Python
最新用Python做一个变态版的《超级玛丽》游戏,面试必备知识点
最新用Python做一个变态版的《超级玛丽》游戏,面试必备知识点
最新用Python做一个变态版的《超级玛丽》游戏,面试必备知识点
|
1月前
|
存储 JSON 数据格式
Python知识点——高维数据的格式化
Python知识点——高维数据的格式化
16 0
|
1月前
|
Python
Python知识点——文件和数据格式化
Python知识点——文件和数据格式化
20 0
|
1月前
|
数据可视化 Python
Python模型评估与选择:面试必备知识点
【4月更文挑战第17天】本文深入探讨了Python模型评估与选择在面试中的关键点,包括性能度量、过拟合与欠拟合识别、模型比较与选择、模型融合和偏差-方差权衡。强调了避免混淆评估指标、忽视模型验证和盲目追求高复杂度模型的常见错误,并提供相关代码示例,如交叉验证、网格搜索和超参数调优。通过理解这些概念和技巧,可在面试中展示出色的数据科学能力。
45 12
|
1月前
|
存储 数据可视化 数据挖掘
Python的知识点非常广泛
Python的知识点非常广泛
16 0
|
1月前
|
存储 Java C++
【python基础题】——知识点选择、填空、简答
【python基础题】——知识点选择、填空、简答
82 0
|
1月前
|
Java Shell 索引
[Python]知识点
[Python]知识点
87 0
[Python]知识点