Python3中super()函数的使用方法

简介

在开发中如果父类中的方法满足不了子类的需求,而又需要保留父类中的方法时,就需要在子类中对相应的方法进行重写扩展,在需要调用父类中同名的方法时就可以使用super()函数来实现,super()其实就相当于创建了一个对象。

说明

此处所使用的python版本为python3,python2和python3在类的创建和super()函数的使用差异如下:

1.类的创建

python2中如果没有继承父类则需要继承object类,而python3中则是默认的。

# python2
class A(object):
	pass
# python3
class A:
	pass
2.super()的使用

python2:super(子类,self).父类方法名
python3:super().父类方法名,省略了括号中的参数

只对方法进行调用

在这里插入图片描述
在子类B中对父类A中的func_A方法进行了重写,并且在使用super()函数再次调用父类中的同名方法时能正常输出结果。

方法和属性都调用(不使用super()函数)

在这里插入图片描述

输出结果:

在这里插入图片描述
结果显示完成了子类B的实例化,并且可以直接调用父类的方法,但是无法使用父类的属性,无论是在子类调用的父类方法中还是子类直接访问都是不可以的。

方法和属性都调用(使用super()函数)

在这里插入图片描述

使用super()函数在子类的init方法中对父类的init方法进行了调用,使得子类不仅可以使用父类的方法,还可以使用在父类的init方法中声明的属性。

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Pythonsuper()函数用于调用父类的方法。它的作用是在子类调用父类的方法,以便实现方法的重写和扩展。super()函数可以在子类的方法调用父类的同名方法,而不需要直接指定父类的名称。 super()函数的语法格式为super().method_name(),其method_name是要调用的父类方法的名称。super()函数既可以在普通方法使用,也可以在类方法使用。在普通方法使用super()函数时,它会自动将当前实例作为第一个参数传递给父类方法。在类方法使用super()函数时,它会将当前类作为第一个参数传递给父类方法。 举个例子,假设有一个父类A和一个子类B,子类B继承自父类A。如果在子类B重写了父类A的方法add(),可以使用super().add()调用父类A的add()方法,实现对父类方法的扩展。 总结一下,Pythonsuper()函数的作用就是在子类调用父类的方法,以实现方法的重写和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Pythonsuper函数,你熟吗?](https://blog.csdn.net/luccs624061082/article/details/126872837)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Pythonsuper()函数](https://blog.csdn.net/weixin_46713695/article/details/125114605)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值