为什么子类不会忽略python中基于类的字段以及如何处理它

Mag*_*nar 2 python

我在python中创建了基于抽象的类,它基于所有子类的类,并实现了一些在每个子类中每次都要写入多余的函数.

class Element:

    ###SITE###
    __sitedefs = [None]

    def getSitedefs(self):
        return self.__sitedefs


class SRL16(Element):

    ###SITE###
    __sitedefs = ['SLICEM']
Run Code Online (Sandbox Code Playgroud)

结果是合乎逻辑的,因为我从基础类中获取值,我声明了值,但否则我在子项1中覆盖它.我的问题是如何得到

srl = SRL16()
srl.getSitedefs()
Run Code Online (Sandbox Code Playgroud)

SLICEM不是

可能我会错过一些非常基础的东西,但请帮忙.

最好的祝福

hiv*_*ert 7

你的问题是由于名称错误造成的.请参阅例如:在对象名称之前单引号和双引号的含义是什么?.

如果你改变了所有的东西__sitedefs,_sitedefs那么一切都应该按预期工作.

  • 实际上,这是双重领导下划线的全部目的. (4认同)