❤️💕💕
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__()
函数添加到子类(而不是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)
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
-
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©