求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
Python 教程
1.Python 简介
2.Python 入门
3.Python 语法
4.Python 注释
5.Python 变量
6.Python 数据类型
7.Python 数字
8.Python Casting
9.Python 字符串
10.Python 布尔
11.Python 运算符
12.Python 列表
13.Python 元组
14.Python 集合
15.Python 字典
16.Python If ... Else
17.Python While 循环
18.Python For 循环
19.Python 函数
20.Python 数组
21.Python Lambda
22.Python Lambda
23.Python 继承
24.Python 迭代
25.Python 作用域
26.Python 模块
27.Python 日期
28.Python JSON
29.Python RegEx
30.Python PIP
31.Python Try Except
32.Python 命令行输入
33.Python 字符串格式化
34.Python 文件处理
35.Python 文件打开
36.Python 文件写入
37.Python 删除文件
 

 
目录
Python 继承
37 次浏览
6次  

Python 继承

继承允许我们定义继承另一个类的所有方法和属性的类。

父类 是继承的类,也称为基类。

子类 是从另一个类继承的类,也称为派生类。

创建父类

任何类都可以是父类,因此语法与创建任何其他类相同:

实例

创建一个名为Person 的类,其中包含 firstname 和 lastname 属性以及 printname 方法:

class Person:
  def __init__(self, fname, lname):
    self.firstname = fname
    self.lastname = lname

  def printname(self):
    print(self.firstname, self.lastname)

# 使用 Person 来创建对象,然后执行 printname 方法:

x = Person("Bill", "Gates")
x.printname()
                               

创建子类

要创建从其他类继承功能的类,请在创建子类时将父类作为参数发送:

实例

创建一个名为 Student 的类,它将从 Person 类继承属性和方法:

class Student(Person):
  pass

注释: 如果您不想向该类添加任何其他属性或方法,请使用 pass 关键字。

现在,Student 类拥有与 Person 类相同的属性和方法。

实例

使用 Student 类创建一个对象,然后执行 printname 方法:

x = Student("Elon", "Musk")
x.printname()

添加 __init__() 函数

到目前为止,我们已经创建了一个子类,它继承了父类的属性和方法。

我们想要把 __init__() 函数添加到子类(而不是 pass 关键字)。

注释: 每次使用类创建新对象时,都会自动调用 __init__() 函数。

实例

为 Student 类添加 __init__() 函数:

class Student(Person):
  def __init__(self, fname, lname):
    # 添加属性等

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

注释: 子的 __init__() 函数会覆盖对父的 __init__() 函数的继承。

如需保持父的 __init__() 函数的继承,请添加对父的 __init__() 函数的调用:

实例

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

现在,我们已经成功添加了 __init__() 函数,并保留了父类的继承,我们准备好在 __init__() 函数中添加功能了。

使用 super() 函数

Python 还有一个 super() 函数,它会使子类从其父继承所有方法和属性:

实例

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

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

添加属性

实例

把名为 graduationyear 的属性添加到 Student 类:

class Student(Person):
  def __init__(self, fname, lname):
    super().__init__(fname, lname)
    self.graduationyear = 2019

在这例子中,2019 年应该是一个变量,并在创建 student 对象时传递到 Student 类。为此,请在 __init__() 函数中添加另一个参数:

实例

添加 year 参数,并在创建对象时传递正确的年份:

class Student(Person):
  def __init__(self, fname, lname, year):
    super().__init__(fname, lname)
    self.graduationyear = year

x = Student("Elon", "Musk", 2019)

添加方法

实例

把名为 welcome 的方法添加到 Student 类:

class Student(Person):
  def __init__(self, fname, lname, year):
    super().__init__(fname, lname)
    self.graduationyear = year

  def welcome(self):
    print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)

提示: 如果您在子类中添加一个与父类中的函数同名的方法,则将覆盖父方法的继承。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



37 次浏览
6次