我有下面的课程
class Foo():
data = "abc"我将其子类化
class Bar(Foo):
data +="def"我正在尝试编辑subclass中的父类属性。我希望我的父类有一些字符串,而我的子类应该向该字符串添加一些额外的数据。在Python中应该怎么做呢?我的设计错了吗?
发布于 2015-11-19 00:23:14
你会问两个问题:
在
中应该怎么做?
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'
>>> 发布于 2015-11-19 00:34:26
您可以从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发布于 2015-11-19 00:24:43
您可以通过常规的属性访问从Bar的名称空间引用Foo的类变量:
class Bar(Foo):
data = Foo.data + 'def'我不知道这是不是一种好的做法,但它没有理由是不好的。
https://stackoverflow.com/questions/33785106
复制相似问题