python基础(15)之 继承

目录

Python继承

一、创建父类

二、创建子类

三、添加 init() 函数

四、使用 super() 函数

五、添加属性

六、添加方法


Python继承

        继承允许我们定义一个从另一个类继承所有方法和属性的类。父类是被继承的类,也称为基类。子类是从另一个类继承的类,也称为派生类。

一、创建父类

任何类都可以是父类,因此语法与创建任何其他类相同:
这里创建一个名为Person、 firstname和lastname属性的类,以及一个printname方法:

class Person:def __init__(self, fname, lname):self.firstname = fnameself.lastname = lnamedef printname(self):print(self.firstname, self.lastname)x = Person("洋洋", "笨")
x.printname()

返回:

二、创建子类

创建从另一个类继承功能的类,请在创建子类时将父类作为参数发送。
例如:创建一个名为 的类Student,它将继承该类的属性和方法Person

class Student(Person):pass

注意: pass 当您不想向类添加任何其他属性或方法时,请使用关键字。
现在 Student 类具有与 Person 类相同的属性和方法。使用Student类创建对象,然后执行printname方法:

class Person:def __init__(self, fname, lname):self.firstname = fnameself.lastname = lnamedef printname(self):print(self.firstname, self.lastname)class Student(Person):passx = Student("洋洋", "笨")
x.printname()

返回还是一样​​​​​​​

三、添加 init() 函数

到目前为止,我们已经创建了一个继承父类的属性和方法的子类。我们想将__init__()函数添加到子类(而不是pass关键字)。
注意init()每次使用该类创建新对象时都会自动调用该函数。
例如:将__init__()函数添加到 Student类中

class Student(Person):def __init__(self, fname, lname):

添加__init__()函数后,子类将不再继承父类的__init__()函数。

:孩子的__init__() 功能覆盖父母的继承 init()功能。为了保持父__init__() 函数的继承,添加对父函数的调用__init__():

class Person:def __init__(self, fname, lname):self.firstname = fnameself.lastname = lnamedef printname(self):print(self.firstname, self.lastname)class Student(Person):def __init__(self, fname, lname):Person.__init__(self, fname, lname)x = Student("洋洋", "笨")
x.printname()

这样效果一样:

四、使用 super() 函数

Python 还有一个super()函数可以让子类继承其父类的所有方法和属性:

class Person:def __init__(self, fname, lname):self.firstname = fnameself.lastname = lnamedef printname(self):print(self.firstname, self.lastname)class Student(Person):def __init__(self, fname, lname):super().__init__(fname, lname)x = Student("洋洋", "笨")
x.printname()

一样返回:

通过使用该super()函数,您不必使用父元素的名称,它会自动从其父元素继承方法和属性。

五、添加属性

添加一个属性调用graduationyear到 Student类:

class Person:def __init__(self, fname, lname):self.firstname = fnameself.lastname = lnamedef printname(self):print(self.firstname, self.lastname)class Student(Person):def __init__(self, fname, lname):super().__init__(fname, lname)self.graduationyear = 2022x = Student("洋洋", "笨")
print(x.graduationyear)

返回:

年份2019应该是一个变量,并Student在创建学生对象时传递给 类。为此,请在 init() 函数中添加另一个参数。
添加year参数,并在创建对象时传递正确的年份:

class Person:def __init__(self, fname, lname):self.firstname = fnameself.lastname = lnamedef printname(self):print(self.firstname, self.lastname)class Student(Person):def __init__(self, fname, lname, year):super().__init__(fname, lname)self.graduationyear = yearx = Student("洋洋", "笨", 2022)
print(x.graduationyear)

返回一样为2022

六、添加方法

添加一个调用welcome到 Student类的方法:

class Person:def __init__(self, fname, lname):self.firstname = fnameself.lastname = lnamedef printname(self):print(self.firstname, self.lastname)class Student(Person):def __init__(self, fname, lname, year):super().__init__(fname, lname)self.graduationyear = yeardef welcome(self):print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)x = Student("洋洋", "笨", 2022)
x.welcome()

返回:

​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言二分查找(折半查找)

二分査找也称折半査找,其优点是查找速度快,缺点是要求所要査找的数据必须是有序序列。该算法的基本思想是将所要査找的序列的中间位置的数据与所要査找的元素进行比较,如果相等,则表示査找成功,否则将以该位置为基准将…

python基础(16)之 日期

目录 Python日期 一、日期输入输出 二、创建日期对象 三、strftime() 方法 Python日期 Python 中的日期不是它自己的数据类型,但我们可以导入一个名为的模块datetime来处理日期作为日期对象。 一、日期输入输出 导入 datetime 模块并显示当前日期:…

python基础(17)之 JSON

Python JSON JSON 是一种用于存储和交换数据的语法。JSON 是文本,用 JavaScript 对象表示法编写。 Python 有一个名为 的内置包json,可用于处理 JSON 数据。 导入 json 模块: import json一.从 JSON 转换为 Python 如果您有 JSON 字符串&am…

python基础(18)之 异常处理

目录 异常处理 一、异常处理 二、else搭配 三、finally语句 四、引发异常 异常处理 try块可让您测试代码块的错误。except块可让您处理错误。finally无论 try- 和 except 块的结果如何,该块都允许您执行代码。 一、异常处理 例如该try块将产生异常&#xff0…

python基础(19)之 输入输出

目录 用户输入 一、格式化输入输出 二、格式化字符串字面值 三、字符串 format() 方法 四、手动格式化字符串 五、旧式字符串格式化方法 用户输入 实在太简单了,就是使用一个input(),将输入后的值传递给另一个变量,相当于动态赋值、 例如&#xff…

C语言函数返回值详解

函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这个结果通过 return 语句返回。 return 语句的一般形式为: return 表达式;或者: return (表达式);有没有( )都是正确的,为了简明,一般…

机器学习之线性回归(python)

目录 一、基本概念 二、概念的数学形式表达 三、确定w和b 1.读取或输入数据 2.归一化、标准化 2.1 均值 2.2 归一化 2.3 标准化 3.求解w和b 1.直接解方程 2.最小二乘法(least square method)求解: 4. 评估回归模型 四、sklearn中…

C语言函数的调用

函数调用(Function Call),就是使用已经定义好的函数。 函数调用的一般形式为: functionName(param1, param2, param3 ...);functionName 是函数名称,param1, param2, param3 …是实参列表。实参可以是常数、变量、表…

机器学习之线性回归(matlab)

目录 一、基本概念 二、概念的数学形式表达 三、确定w和b 1.读取或输入数据 2.归一化、标准化 2.1 均值 2.2 归一化 2.3 标准化 3.求解w和b 1.直接解方程 2.最小二乘法(least square method)求解: 4. 评估回归模型 四、regress线…

C语言函数声明以及函数原型

C语言代码由上到下依次执行,原则上函数定义要出现在函数调用之前,否则就会报错。但在实际开发中,经常会在函数定义之前使用它们,这个时候就需要提前声明。 函数声明(Declaration),就是告诉编译…

python(20)之读写文件

目录 读写文件 1.简单介绍 2.从文件中读取单行数据 3.从文件中读取多行 4.把 string(字符串) 的内容写入文件 5.写入其他类型的对象 本节知识总结 mode 参数 file 对象 读写文件 1.简单介绍 最常用的参数有两个: open(filename, mode) f op…

C语言全局变量和局部变量深入

局部变量 定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。 示例 int f1(int a){int b,c; //a,b,c仅在函数f1()内有效return abc; } int ma…

python实例之 67,68

目录 67.题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 68.题目:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 今天这个不知道…

C语言块级变量

代码块,就是由{ }包围起来的代码。代码块在C语言中随处可见,例如函数体、选择结构、循环结构等。不包含代码块的C语言程序根本不能运行,即使最简单的C语言程序也要包含代码块。 C语言允许在代码块内部定义变量,这样的变量具有块级…

python实例 69,70

69.题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 先看一下第一种实现方式 nmax 50 n int(input(请输入总人数:)) num [] f…

C语言递归调用

一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层,当最内层的函数执行完毕后,再一层一层地由里到外退出。 递归函数不是C语言的专利,Java…

python实例 71,72

目录 71.编写input()和output()函数输入,输出5个学生的数据记录。 72.题目:创建一个列表。 71.编写input()和output()函数输入,输出5个学生的数据记录。 #71 N 3 #stu # num : string # name : string # score[4]: list student [] for i…

Dev-C++ 常用快捷键大全

最近开始用Dev-C在Window下编程,感觉Dec-C是一款挺不错的C编译器。我总结了一些使用技巧。 Dev-C 的一些常用快捷键 恢复 CtrlZ 重做 CtrlY 剪切 CtrlX 拷贝 CtrlC 粘贴 CtrlV 搜索替换内容 CtrlF 选择全部 CtrlA 编译 F9 运行 F10 编译运行 F11 设置注释 Ctrl/…

python实例 73,74

目录 73.题目:反向输出一个链表。 74.题目:列表排序及连接。 73.题目:反向输出一个链表。 #73 ptr [] for i in range(5):num int(input(请输入一个数字:))ptr.append(num) print (输入原顺序列表,ptr) ptr.reverse() print (输入反顺序…

C语言简单计算器

用C语言实现简单的计算器功能。 简单计算器,实现简单的加减乘除功能,选择对应的运算符输出运算符对应的编号,然后输入我们要计算的两个数,程序会给出计算结果。 效果演示 简单计算器代码 /* 简单计算器 name:zsh */ #include…