首页 > 编程语言 >在Python中,子类继承父类并调用父类的构造方法有几种方式: 1. 如果子类没有重写`__init__`,实例化子类时,会自动调用父类定义的`__init__`¹。 ```python clas

在Python中,子类继承父类并调用父类的构造方法有几种方式: 1. 如果子类没有重写`__init__`,实例化子类时,会自动调用父类定义的`__init__`¹。 ```python clas

时间:2024-01-29 13:32:59浏览次数:28  
标签:__ name python 子类 self init 父类

在Python中,子类继承父类并调用父类的构造方法有几种方式:


1. 如果子类没有重写`__init__`,实例化子类时,会自动调用父类定义的`__init__`¹。


```python

class Father(object):

   def __init__(self, name):

       self.name = name


class Son(Father):

   pass


son = Son('runoob')

```


2. 如果子类重写了`__init__`,实例化子类时,就不会调用父类已经定义的`__init__`¹。


```python

class Father(object):

   def __init__(self, name):

       self.name = name


class Son(Father):

   def __init__(self, name):

       print("hi")

       self.name = name


son = Son('runoob')

```


3. 如果子类重写了`__init__`并且想要继承父类的构造方法,可以使用`super`关键字¹。


```python

class Father(object):

   def __init__(self, name):

       self.name = name


class Son(Father):

   def __init__(self, name):

       super(Son, self).__init__(name)

       print("hi")

       self.name = name


son = Son('runoob')

```


4. 另一种经典写法是直接使用父类名称调用`__init__`¹。


```python

class Father(object):

   def __init__(self, name):

       self.name = name


class Son(Father):

   def __init__(self, name):

       Father.__init__(self, name)

       print("hi")

       self.name = name


son = Son('runoob')

```


以上就是Python中子类继承父类并调用父类构造方法的一些常见方式。希望对你有所帮助!


源: 与必应的对话, 2024/1/29

(1) Python 子类继承父类构造函数说明 | 菜鸟教程. https://www.runoob.com/w3cnote/python-extends-init.html.

(2) python调用父类方法的三种方式(super调用和父类名调用)_python子类调用父类方法-CSDN博客. https://blog.csdn.net/qdPython/article/details/130171271.

(3) python子类继承父类构造函数__init__的几种情况_python继承构造方法 __init__-CSDN博客. https://blog.csdn.net/weixin_40734030/article/details/122861895.

(4) python 子类如何调用父类的构造函数?(大牛实例代码详细教学) - 知乎专栏. https://zhuanlan.zhihu.com/p/113555723.

(5) Python类继承(调用父类成员与方法)-腾讯云开发者社区-腾讯云. https://cloud.tencent.com/developer/article/1827573.

标签:__,name,python,子类,self,init,父类
From: https://blog.51cto.com/u_16055028/9464271

相关文章

  • 备份---网络设备的配置定时自动备份
    公司现有江苏、浙江、上海的所有网络设备配置备份的需求。我是kalilinux环境,ubuntu,CentOS,OracleLinux,RedHatLinux理论上支持。aptupdateaptupgrade–yapt-getinstallrubyruby-devlibsqlite3-devlibssl-devpkg-configcmakelibssh2-1-devgeminstalloxidize......
  • 创建linux桌面快捷方式
    第一步在linux桌面上创建一个xx.desktop文件,如下图第二步在desktop文件中输入启动命令和参数,保存文件[DesktopEntry] Encoding=UTF-8 Name=SQLDeveloper Comment=OracleSQLDeveloper Icon=/opt/sqldeveloper/icon.png Exec=/opt/sqldeveloper/sqldeveloper.sh Term......
  • 无涯教程-Swift - Method(方法)
    在Swift4语言中,与特定类型关联的函数称为"方法"。在ObjectiveC中,类用于定义方法,而Swift4语言为用户提供了具有类,结构和枚举方法的灵活性。实例方法在Swift4语言中,可通过方法访问Class,Structures和Enumeration。方法可以写在{}花括号内,它具有对类型的方法和属性的隐式访问,......
  • 126邮箱imap密码在哪里查看
    在使用126邮箱时,配置IMAP服务是常见的需求。然而,许多用户往往会面临一个普遍的问题:如何找到126邮箱的IMAP密码?在本文中,我们将深入探讨这一问题,并提供解决方案。了解IMAP协议首先,让我们了解一下IMAP协议的作用。IMAP(InternetMessageAccessProtocol)是一种用于电子邮件服务的标准协......
  • 网易邮箱海外注册方法
    1.网易邮箱海外注册的需求在当今全球化的互联网时代,越来越多的人需要使用网易邮箱进行海外注册,以便在国际交流、工作和学习中保持联系和沟通。因此,了解网易邮箱海外注册的方法至关重要。2.网易邮箱海外注册的步骤网易邮箱海外注册的步骤相对简单,只需按照以下几个步骤进行操作即可......
  • JVM(Java虚拟机) 整理
    JVM整体结构本文主要说的是HotSpot虚拟机,JVM全称是JavaVirtualMachine,中文译名:Java虚拟机简化一下:Java字节码文件Class文件本质上是一个以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件中,JVM根据其特定的规则解析该二进制数据,从而得到......
  • Windows Server 2008 R2修复永恒之蓝漏洞
    一、情况描述服务器安装的WindowsServer2008R2standard系统,通过扫描发现系统存在永恒之蓝漏洞MS17-010(CVE-2017-0143、CVE-2017-0144、CVE-2017-0145、CVE-2017-0146CVE-2017-0147和CVE-2017-0148),需要从微软官网下载KB4012212这个系统补丁进行修复。1、查看漏洞详情2......
  • 2024年1-2月寒假读书会【大国大城--专题一:区域与城市】
    2024年1-2月寒假读书会【大国大城--专题一:区域与城市】       ......
  • QT Creator12.0.1运行普通C/C++程序时候没有控制台输出
    问题:QTCreator12.0.1运行普通C/C++程序时候没有控制台输出菜单栏选择:[编辑]->[设置],按下图依次设置。启用终端输出,还有去掉内部终端输出的选项运行后控制台窗口正常弹出......
  • 第一次 10天校内集训总结
    这十天,作为第一次在校集训,无疑即是高效的,也是收获满满的;首先,我十分感谢Lyn学长十天以来的辛勤付出然鹅在这十天以来也发现了不少问题;1.与题解的抗争可能是由于学长的速度有些快,而且本人在秋季培训中也没有太过认真的打下一个所谓牢靠的基石(根本原因);因而除了在开始复习语言基......