如何更改子类python中的父属性
我有以下课程如何更改子类python中的父属性,python,oop,namespaces,subclassing,Python,Oop,Namespaces,Subclassing,我有以下课程 class Foo(): data = "abc" 我给它分类 class Bar(Foo): data +="def" 我正在尝试编辑子类中的父类属性。我希望我的父类有一些字符串,我的子类应该向该字符串添加一些额外的数据。在Python中应该如何实现?我的设计错了吗?你问了两个问题: 在Python中应该如何实现 我的设计错了吗 我通常不在Python中使用类变量。更典型的范例是初始化实例变量: >>> class Foo(object):
class Foo():
data = "abc"
我给它分类
class Bar(Foo):
data +="def"
我正在尝试编辑子类中的父类属性。我希望我的父类有一些字符串,我的子类应该向该字符串添加一些额外的数据。在Python中应该如何实现?我的设计错了吗?你问了两个问题:
在Python中应该如何实现
我的设计错了吗
我通常不在Python中使用类变量。更典型的范例是初始化实例变量:
>>> class Foo(object):
... data = "abc"
...
>>> class Bar(Foo):
... def __init__(self):
... super(Bar, self).__init__()
... self.data += "def"
...
>>> b = Bar()
>>> b.data
'abcdef'
>>>
您可以通过常规属性访问从Bar的命名空间中引用Foo的类变量:
class Bar(Foo):
data = Foo.data + 'def'
我不知道这是否是一种好的做法,但没有理由不好。您可以从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
无法编辑,因为更改太小,但请确保添加结束报价。谢谢!顺便问一下,以这种方式在类中存储数据是一种好的做法吗?
abcdef