如何从子类调用基类的 __init__ 方法? [复制]

2023-11-30

如果我有一个 python 类:

class BaseClass(object):
#code and the init function of the base class

然后我定义一个子类,例如:

class ChildClass(BaseClass):
#here I want to call the init function of the base class

如果基类的 init 函数采用一些参数,而我将它们作为子类 init 函数的参数,那么如何将这些参数传递给基类?

我写的代码是:

class Car(object):
    condition = "new"

    def __init__(self, model, color, mpg):
        self.model = model
        self.color = color
        self.mpg   = mpg

class ElectricCar(Car):
    def __init__(self, battery_type, model, color, mpg):
        self.battery_type=battery_type
        super(ElectricCar, self).__init__(model, color, mpg)

我哪里出错了?


你可以使用super(ChildClass, self).__init__()

class BaseClass(object):
    def __init__(self, *args, **kwargs):
        pass

class ChildClass(BaseClass):
    def __init__(self, *args, **kwargs):
        super(ChildClass, self).__init__(*args, **kwargs)

您的缩进不正确,修改后的代码如下:

class Car(object):
    condition = "new"

    def __init__(self, model, color, mpg):
        self.model = model
        self.color = color
        self.mpg   = mpg

class ElectricCar(Car):
    def __init__(self, battery_type, model, color, mpg):
        self.battery_type=battery_type
        super(ElectricCar, self).__init__(model, color, mpg)

car = ElectricCar('battery', 'ford', 'golden', 10)
print car.__dict__

这是输出:

{'color': 'golden', 'mpg': 10, 'model': 'ford', 'battery_type': 'battery'}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从子类调用基类的 __init__ 方法? [复制] 的相关文章

随机推荐

  • 什么是%pylab?

    我不断看到人们使用 pylab在各种代码片段中 尤其是 iPython 然而我看不到在哪里 pylab在学习Python 以及我拥有的其他几本Python书籍 中的任何地方都提到过 但我不太确定它的含义 我确信答案很简单 但有人能启发我吗
  • 通过 React 中的 API 在 powerbi 服务中创建报告

    我们有一个 React 应用程序 我真正想做的是将 JSON 发送到 power bi 服务 并且根据该 json 数据 powerbi 服务应该为我创建一个可视化 图形报告 我希望整个过程自动化 到目前为止我所做的是 我使用本文档中提到的
  • 为什么编译器支持冗余作用域限定,它合法吗?

    我在两个编译器上进行了测试 并惊讶地发现两者都支持以下内容定义无怨无悔 class A A A A A 请注意 这对于方法也是成功的 尽管当声明过度限定时会被标记 问题 这是一个有效的 C 程序吗 如果是这样 它有什么目的 或者只是一个副产
  • NoSuchWindowError:浏览上下文已被 GeckoDriver Firefox 和 Protractor(Selenium) 丢弃

    我正在尝试使用量角器运行一个简单的测试脚本 环境 Node Version v9 8 0 Protractor Version 5 4 1 Angular Version 1 x Browser s Mozilla Firefox 60 1
  • \npm\node_modules\vs-mda\vs-cli 未被识别为内部或外部命令

    安装了混合应用 CTP 下载了 Backbone 示例 将我的构建设置为 Windows Phone 和模拟器 720 P 并尝试构建 我收到此错误 1 gt Build started Project BackboneTodo Confi
  • 获取每个值的分位数

    R 中是否有一个实现的 函数可以为您提供每个值的经验分位数 我找不到任何 假设我们有 x x c 1 3 4 2 我想要每个元素的分位数 1 0 25 0 75 1 0 5 您可以使用ecdf 功能 ecdf x x 1 0 25 0 75
  • 直线与曲线之间的面积(无功能)

    我想计算橙色线和蓝色线之间的面积 我设法遮蔽了该区域 但我不知道如何应用trapz函数来获取面积 在这篇文章中 两条曲线之间的曲面下面积我得到了一些解决方案 但我没有曲线的具体方程 只是图本身 橙色线的代码是 x 1 0 M1 1 y 1
  • SmartGWT RestDataSource

    我正在使用 SmartGWT SmartClient LGPL 由于项目关系 我无法使用 Pro 我想从 jdbc 连接创建一个 RestDataSource 以便从服务器公开给 SmartGWT 客户端 怎么可能呢 任何帮助是极大的赞赏
  • SSDT、SSDT-BI 不同 SQL 版本的向后兼容性混乱

    在谷歌上广泛搜索不同 SQL Server 版本的 SSDT 和 SSDT BI 后 我希望有人能够找出差异并澄清我混乱的想法 Aim To upgradeSSIS 包从 sql server 2012 到 sql server 2014
  • GLCM 结果中的黑线

    这是GLCM矩阵的结果 GLCM图像中的黑色水平线和垂直线是什么意思 他们有问题吗 N numel unique img img is uint8 glcm graycomatrix img NumLevels N imshow glcm
  • 自定义 Jasper 报告甘特图上的日期

    在我的报告的甘特图中 我有 1 年的数据 我只对查看甘特图顶部打印的月份感兴趣 一月至十二月 但是 该图表当前显示月份和年份 我如何自定义图表以仅输出月份 我不确定贾斯珀报告 but createGanttChart uses a Date
  • Java 机器人 Azerty 与 Qwerty

    我希望这不是重复的 但我已经浏览了论坛 但尚未找到任何答案 我的 java 应用程序使用 Robot 类输入文本时遇到问题 提供文本并由应用程序将其打印出来 当用户使用 QWERTY 键盘时 一切正常 当用户使用 AZERTY 键盘时 值将
  • MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别

    为什么在添加新的 编辑 视图时默认情况下这些会发生变化 使用时有什么优势EditorFor vs TextboxFor 我找到了这个 默认情况下 创建和编辑支架现在使用 Html EditorFor 帮助器而不是 Html TextBoxF
  • 每 1 秒调用一次函数(精确地)

    我正在用 C 编写一个简单的游戏模拟程序 有一个名为 update 的函数可以更新游戏的当前状态 必须每 1 秒精确调用一次 如果我使用这样的循环 while some condition update Sleep 1000 那么该函数就不
  • 我们如何使用 Python 去除字符串开头的标点符号?

    我想使用 Python 去除字符串开头的各种标点符号 我的list包含字符串 其中一些以某种标点符号开头 如何从字符串中删除所有类型的标点符号 例如 如果我的话是这样的 gets 我想脱 从这个词来看 我想要gets作为结果 另外我也想脱掉
  • 创建旋转表面

    我有一个磁盘的 3D 图 代码如下 ri 100 ra 300 h 20 input xy coordinates xy np array ri 0 ra 0 ra h ri h ri 0 radial component is x val
  • 运行 React Native 入门项目时发生 TransformError (iOS)

    我在运行 React Native Getting Started 项目时遇到问题 我遵循了这个指南 https facebook github io react native docs getting started html 当我尝试从
  • Groovy - 将一个对象的属性绑定到另一个对象

    有没有一种方法可以将一个类的一个实例的属性绑定到另一个类的实例的属性 两者之间的公共字段 请参阅下面的示例 class One String foo String bar class Two String foo String bar St
  • 是否可以为Android相机预览提供类似顶点着色器和片段着色器的效果,并使用OpenGLES保存捕获的图像?

    这两个是我的VertexShader和Fragment Shader文件 顶点着色器文件 attribute vec4 position attribute vec4 inputTextureCoordinate varying vec2
  • 如何从子类调用基类的 __init__ 方法? [复制]

    这个问题在这里已经有答案了 如果我有一个 python 类 class BaseClass object code and the init function of the base class 然后我定义一个子类 例如 class Chi