从继承的类轻松编辑基类变量

2024-06-11 20:39:34 发布

您现在位置:Python中文网/ 问答频道 /正文

基类和继承类之间的通信是如何工作的?

我的python代码中有一个数据类(存储了所有重要的值,duh),我尝试从数据基类继承新的子类,除了类没有实际通信(当一个子类中的一个类变量被更改时,类属性在基类或任何其他子类中都没有更改

我想我只是没有理解继承是如何工作的,我的问题是:继承是否与基类保持任何连接,或者是在继承时设置的值

如果存在任何连接,如何轻松地从子类操作基类变量(我尝试使用cls变量访问基类变量,但没有成功)

示例

class Base:
    x = 'baseclass var' # The value I want to edit

class Subclass(Base):
    @classmethod(cls)
        ???edit_base_x_var_here??? # This is the part I don't know

Tags: the数据代码示例base属性valuevar
1条回答
网友
1楼 · 发布于 2024-06-11 20:39:34

你可以这样做:

class Base:
    x = 'baseclass var' # The value I want to edit

class Subclass(Base):
    @classmethod
    def change_base_x(cls):
        Base.x = 'nothing'


print Subclass.x
Subclass.change_base_x()
print Subclass.x

此外,您不必使用@classmethod,它可以是staticmethod,因为您不需要当前类对象cls

class Base:
    x = 'baseclass var' # The value I want to edit

class Subclass(Base):
    @staticmethod
    def change_base_x():
        Base.x = 'nothing'

编辑时间:

根据你的问题,关于另一种方式。是的,但不太漂亮。我想说更多。如果您想更改基类的变量,那么您将在全局范围内进行更改,因此指定给Base.x的选项是实现这一点的最佳方法

相关问题 更多 >