可以说这是我的代码:

class Cat:
    def __init__(self):
        self.purs = True
        self.hasFur = True

class HairlessCat(Cat):
    def __init__(self):
        Cat.__init__(self)

jeffery = Cat()
bob = HairlessCat()


如何使jeffery具有毛发而bob没有毛发(将来所有Cat都具有毛发而HairlessCat没有)?

更新:不是通过HairlessCat进行更改,而是通过更改使其不向Cat继承任何其他类。

最佳答案

使用类变量。定义与基类中包含的变量名称相似的变量名称的子类将覆盖该值:

class Cat:
    hasFur = True

    def __init__(self):
        self.purs = True

class HairlessCat(Cat):
    hasFur = False


在这种情况下,您也不需要为子类定义__init__,因为您无需进行任何更改。

HairlessCat创建的任何实例的属性hasFur设置为False,任何Cat设置为True

关于python - 如何使变量不属于类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42524344/

10-16 03:19