可以说这是我的代码:
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
没有(并且所有 future 的Cat
都有毛皮和HairlessCat
没有)?
更新:不是通过 HairlessCat
更改它,而是使 Cat
不会向 self.hasFur
提供任何其他类继承。
最佳答案
使用类变量。定义与其基类中包含的变量名称相似的变量名称的子类将覆盖该值:
class Cat:
hasFur = True
def __init__(self):
self.purs = True
class HairlessCat(Cat):
hasFur = False
在这种情况下,您也不需要为子类定义 __init__
,因为您不需要更改任何内容。
从 HairlessCat
创建的任何实例都会将属性 hasFur
设置为 False
,并将任何 Cat
设置为 真
。
关于python - 如何使变量专属于类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42524344/