可以说这是我的代码:
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/