我有以下课程
class Foo():
data = "abc"
我将其子类化
class Bar(Foo):
data +="def"
我正在尝试编辑子类中的父类属性。我希望我的父类有一些字符串,我的子类应该为该字符串添加一些额外的数据。如何在Python中完成?我的设计错了吗?
答案 0 :(得分:11)
你问两个问题:
如何在Python中完成?
class Bar(Foo):
data = Foo.data + "def"
我的设计错了吗?
我通常不会在Python中使用类变量。更典型的范例是初始化实例变量:
>>> class Foo(object):
... data = "abc"
...
>>> class Bar(Foo):
... def __init__(self):
... super(Bar, self).__init__()
... self.data += "def"
...
>>> b = Bar()
>>> b.data
'abcdef'
>>>
答案 1 :(得分:5)
您可以从Bar类初始化Foo类的状态,然后追加到这样的数据:
class Foo(object):
def __init__(self):
self.data = "abc"
class Bar(Foo):
def __init__(self):
super(Bar, self).__init__()
self.data += "def"
当您实例化Bar的实例时,结果的数据值为:
abcdef
答案 2 :(得分:1)
您可以通过常规属性访问从Bar的命名空间引用Foo的类变量:
class Bar(Foo):
data = Foo.data + 'def'
我不知道这是不是一个好习惯,但没有理由不好。