python3中类的继承以及self和super的区别详解
作者:不论如何未来很美好 发布时间:2023-02-23 20:31:25
标签:python3,类,继承,self,super
python中类的继承:
子类继承父类,及子类拥有了父类的 属性 和 方法。
python中类的初始化都是__init__()。所以父类和子类的初始化方式都是__init__(),但是如果子类初始化时没有这个函数,那么它便调用父类的__init__();如果实现了这个函数,就会覆盖父类的初始化函数。如果继承父类的__init__(),就需要在子类中显示调用这个函数。实现如下:
class Animal(object):
def __init__(self):
self.name = "我是父类"
class Panda(Animal):
def __init__(self):
super().__init__() #使用super的方式来显示调用父类的__init__()函数
if __name__=="__main__":
panda = Panda() #实例化Panda
print(panda.name)
我是父类 #输出可以看出使用了父类的初始化函数并有了name属性
子类也可以在初始化函数中定义自己的属性:
class Animal(object):
def __init__(self):
self.name = "我是父类"
class Panda(Animal):
def __init__(self):
super().__init__()
self.myname = "panda"
if __name__=="__main__":
panda = Panda()
print(panda.myname)
panda #子类自己的属性
self和super的区别:
★self是首先调用自身的方法如果自身没有再去父类中找;super是直接从父类中找方法
★self是类,super是预编译指令
★self class 和super calss的输出是一样的
class Animal(object):
def __init__(self):
self.name = "我是父类"
def A(self): #父类中的A方法
print("父类的A方法")
class Panda(Animal):
def __init__(self):
super().__init__()
self.myname = "panda"
def A(self): #子类中的A方法
print("子类的A方法")
def B(self):
self.A() #self调用A
super().A() #super调用A
if __name__=="__main__":
panda = Panda()
panda.B() #通过B函数来调用A方法,查看self和super的区别
子类的A方法 #我们说过self是先从自身找方法,没有再去父类找
父类的A方法 #而super则是直接从父类中找
如果子类中没有A方法那么会输出:
父类的A方法 #子类没有,self从父类中找
父类的A方法
父类没有则会报错
以上则是python中继承的基础讲解,以及self和super的区别。类其实还是又很多复杂的地方,在使用过程会慢慢学习到,这里只是一个入门级的说明。
这篇python3中类的继承以及self和super的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
来源:https://blog.csdn.net/qq_36523839/article/details/80227830
0
投稿
猜你喜欢
- Item Pipeline简介Item管道的主要责任是负责处理有蜘蛛从网页中抽取的Item,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛
- 第一步:建与mysql同构的oracle数据库实例,并更新数据。 1.期望将my
- 如何用Response.Write调用代替内嵌表达式?我们可以利用下面的代码,注意:代码的每一行对响应流有一次写操作,所有的代码都包含在一个
- 开发动机:最近用手机QQ浏览器下载了一些视频,视频越来越多,占用了手机内存,于是想把下载的视频传到电脑上保存,可后来发现这些视频都是m3u8
- 首先这是VGG的结构图,VGG11则是红色框里的结构,共分五个block,如红框中的VGG11第一个block就是一个conv3-64卷积层
- 上文:栅格:从混乱到秩序Jacci Howard Bear 的英文原文:http://desktoppub.about.com/od/gri
- 在使用 SQLAlchemy 时,那些看似很小的选择可能对这种对象关系映射工具包的性能产生重要影响。对象关系映射Object-relatio
- python是一种美丽的语言 ,应用范围也很广,有很多的人开始学习python开发,对于初学者,这里有5本经典的书籍,如果你打算用看书来学习
- 去年淘宝做了个“胖子”项目,就是把网页的默认宽度从780提升到了950。也就是说,基本放弃了800×600的用户(没有完全放弃,如果你仔细研
- 0. 我们如何通过邮件系统完成远程控制电脑(关机、重启等)?实现思路:需要有两个邮箱:接收指令邮箱(A)发送指令邮箱(B)被控制的电脑(查看
- 1 DataFramePandas=panel+data+analysis专门用于数据挖掘的开源Python库以Numpy为基础,借力Num
- 引言书接上回 Gradio机器学习模型快速部署工具【quickstart】翻译,讲到多输入输出,其实很简单,就是把多个组件包装到列表,inp
- PHP保存session默认的是采用的文件的方式来保存的,这仅仅在文件的空间开销很小的windows上是可以采用的,但是如果我们采用uinx
- 一、首先我们来填个坑支付验签失败这个问题折磨了我两天,官方文档比较含糊不清。各种百度下来的方法试过之后也不尽人意,最后发现问题是没有二次签名
- zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile类来操作zip文件,下面具体介绍一下:class zipfile
- 这代表将模型加载到指定设备上。其中,device=torch.device("cpu")代表的使用cpu,而device
- python3 cmp实现python3移除了cmp()函数,但提供了六个丰富的比较运算符,详见此处import operator &nbs
- 官网: https://matplotlib.org一、版本# 01 matplotlib安装情况 import matplotlib ma
- 页面中无法看见页面,指向的连接网页无法显示 解决方法:1、首先在Dreamweaver中不能中文作为文件名。连目录名也最好是英文的。2、如果
- 不知道您是否留意了,浏览本站时,浏览器右下角有一个标着top的黑色直角三角形,可以点击它返回到正在浏览的网页页眉。当滚动网页时,它的位置一直