【问题标题】:python how to initiate a value in subclass?python如何在子类中初始化一个值?
【发布时间】:2020-03-02 22:08:23
【问题描述】:

我有以下代码:

class Vehicle:
    def __init__(self, name=None, color='Red', make='Toyota'):
        self._name = name 
        self._color = color
        self._make = make

    @property
    def name(self):
        if self._name is None:
            return 'name is none'
        return self._name

    @name.setter
    def name(self, value):
        self._name=value   

    def getColor(self):
        return self._color

    def getMake(self):
        return self._make    

class Car(Vehicle):
    def __init__(self, mode='Running', *args, **kwargs):
        super().__init__(self,  *args, **kwargs)
        self._mode=mode

    def getMode(self):
        return self._mode

我想启动汽车的名称,但是以下都不起作用。有简单的方法吗?

mycar=Car('Corolla')
mycar=Car(name='Corolla')

【问题讨论】:

  • 请不要在 Python 中编写 getter,例如 def getColor(self): 等。
  • 变量和函数名应该遵循lower_case_with_underscores风格,你不需要那些基本的getter,这是Python而不是Java。

标签: python inheritance subclass init args


【解决方案1】:

不要将self 传递到super 绑定__init__

class Car(Vehicle):
    def __init__(self, mode='Running', *args, **kwargs):
        super().__init__(*args, **kwargs)

【讨论】:

    猜你喜欢
    • 2017-10-14
    • 2021-03-23
    • 2015-10-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    相关资源
    最近更新 更多