2024-05-19 15:21:25 发布
网友
我有下列课程
class Foo(): data = "abc"
我把它分类
class Bar(Foo): data +="def"
我试图在子类中编辑父类属性。我希望我的父类有一些字符串,我的子类应该向该字符串添加一些额外的数据。在Python中应该怎么做?我设计错了吗?
可以从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
你问两个问题:
How it should be done in Python?
class Bar(Foo): data = Foo.data + "def"
Am i wrong by design?
我通常不在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类的状态,然后附加到数据,如下所示:
当实例化Bar实例时,结果的数据值为:
你问两个问题:
我通常不在Python中使用类变量。更典型的范例是初始化实例变量:
可以通过常规属性访问从Bar的命名空间引用Foo的类变量:
我不知道这是不是一个好的做法,但没有理由是不好的。
相关问题 更多 >
编程相关推荐