繁体   English   中英

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

[英]Easily editing base class variables from inherited class

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

我的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

好吧,您可以通过以下方式做到这一点:

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一起分配是实现该目标的最佳方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM