Geo*_*rge 10 python oop namespaces subclassing
我有以下课程
class Foo():
data = "abc"
Run Code Online (Sandbox Code Playgroud)
我把它子类化了
class Bar(Foo):
data +="def"
Run Code Online (Sandbox Code Playgroud)
我正在尝试编辑子类中的父类属性.我希望我的父类有一些字符串,我的子类应该为该字符串添加一些额外的数据.如何在Python中完成?我设计错了吗?
Rob*_*obᵩ 13
你问两个问题:
如何在Python中完成?
class Bar(Foo):
data = Foo.data + "def"
Run Code Online (Sandbox Code Playgroud)
我设计错了吗?
我通常不在Python中使用类变量.更典型的范例是初始化实例变量:
>>> class Foo(object):
... data = "abc"
...
>>> class Bar(Foo):
... def __init__(self):
... super(Bar, self).__init__()
... self.data += "def"
...
>>> b = Bar()
>>> b.data
'abcdef'
>>>
Run Code Online (Sandbox Code Playgroud)
小智 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"
Run Code Online (Sandbox Code Playgroud)
实例化Bar实例时,结果的数据值为:
abcdef
Run Code Online (Sandbox Code Playgroud)