Skip to content

Latest commit

 

History

History
152 lines (94 loc) · 3.57 KB

File metadata and controls

152 lines (94 loc) · 3.57 KB

第11节 python继承

❤️💕💕python是一种动态的解释形语言,由于python的普遍性,学会python能更快的解决问题,以及学习其他的知识。Myblog:http://nsddd.top


[TOC]

继承

In [48]: class Person:
    ...:   def __init__(self, fname, lname):
    ...:     self.firstname = fname
    ...:     self.lastname = lname
    ...:
    ...:   def printname(self):
    ...:     print(self.firstname, self.lastname)
    ...:

In [51]: person = Person("张三",100)

In [53]: person.printname()
张三 100

上面是父类

我们在上面的基础上创建子类,就可以体现出python的继承

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

class Student(Person):
  pass

添加 init() 函数

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

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

class Student(Person):
  def __init__(self, fname, lname):
    #add properties etc.

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

注意:子函数覆盖__init__()父 函数的继承。 __init__()

为了保持父函数的继承__init__() ,添加对父__init__()函数的调用:

为了保持父函数的继承__init__() ,添加对父__init__()函数的调用:

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

使用 super() 函数

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

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

添加属性

添加一个名为该类graduationyear的 属性:Student

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

In [75]: student.firstname
Out[75]: '子类'

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

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

In [77]: x = Student("Mike", "Olsen", 2019)

In [78]: x.graduationyear
Out[78]: 2019

In [79]: x.firstname
Out[79]: 'Mike'

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

In [80]: 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)
    ...:

In [81]: a = Student("张三","张三丰",1999)

In [82]: a.welcome()
Welcome 张三 张三丰 to the class of 1999

END 链接