让我们说这是我的代码:
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
改为self.hasFur
,不会向scrip
提供任何其他类继承。
答案 0 :(得分:3)
使用类变量。定义类似于其基类中包含的变量名称的子类将覆盖值:
class Cat:
hasFur = True
def __init__(self):
self.purs = True
class HairlessCat(Cat):
hasFur = False
在这种情况下,您也不需要为子类定义__init__
,因为您不会改变任何内容。
从HairlessCat
创建的所有实例都将hasFur
属性设置为False
,将Cat
设置为True
。