Python基础:Python继承
Python继承
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)
#Use the Person class to create an object, and then execute the printname method:
x = Person("John", "Doe")
x.printname()
创建子类
若要创建从另一个类继承功能的类,请将父类作为参数发送,以便创建子类:
例子
创建名为 的 类,它将从 类继承属性和方法:Student``````Person
class Student(Person):
pass
<font _mstmutation="1" _msthash="219752" _msttexthash="203163363">**注:**当您不想向类添加任何其他属性或方法时,请使用 关键字。</font>```pass```
现在,学生类具有与 Person 类相同的属性和方法。
### 例子
<font _mstmutation="1" _msthash="220467" _msttexthash="91902135">使用 类创建对象,然后执行方法:</font>```Student``````printname```
x = Student(“Mike”, “Olsen”) x.printname()
* * *
<script>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1493883843099-0'); });</script>
* * *
## 添加__init__() 函数
到目前为止,我们已经创建了一个子类,该子类从其父级继承属性和方法。
<font _mstmutation="1" _msthash="103896" _msttexthash="128995893">我们要将函数添加到子类(而不是关键字)。</font>```__init__()``````pass```
<font _mstmutation="1" _msthash="220181" _msttexthash="169165035">**注:**每次使用类创建新对象时,都会自动调用该函数。</font>```__init__()```
### 例子
<font _mstmutation="1" _msthash="220675" _msttexthash="39094575">将 函数添加到类中:</font>```__init__()``````Student```
class Student(Person): def init(self, fname, lname): #add properties etc.
添加函数时,子类将不再继承父类的函数。__init__()``````__init__()
注:子函数将覆盖父函数的继承。__init__()
__init__()
若要保留父函数的继承,请向父函数添加调用:__init__()``````__init__()
例子
class Student(Person):
def __init__(self, fname, lname):
Person.__init__(self, fname, lname)
现在,我们已经成功地添加了 init() 函数,并保留了父类的继承,并且我们准备在函数中添加功能。__init__()
使用超级() 函数
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
在下面的示例中,年应是一个变量,并在创建学生对象时传递到类中。为此,请添加另一个参数在 init() 函数中:2019``````Student
例子
添加参数,并在创建对象时传递正确的一年:year
class Student(Person):
def __init__(self, fname, lname, year):
super().__init__(fname, lname)
self.graduationyear = year
x = Student("Mike", "Olsen", 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)
如果在子类中添加与父类中的函数同名的方法,则父方法的继承将被覆盖。
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek/post/python/Python%E5%9F%BA%E7%A1%80Python%E7%BB%A7%E6%89%BF/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com