Python Pylint说:W0233:_init__调用来自非直接基类“嵌套”的方法(调用非父init)

Python Pylint说:W0233:_init__调用来自非直接基类“嵌套”的方法(调用非父init),python,class,pylint,Python,Class,Pylint,我也是编程和python方面的新手。当我试图将我的数据结构包装到类中,以便不进行列表或dict迭代时,我得到pylint错误消息: W0233: __init__ method from a non direct base class 'Nested' is called (non-parent-init-called) 有没有最好的蟒蛇式方法 我的json数据是这样的: { "template" : [ { "folder" :

我也是编程和python方面的新手。当我试图将我的数据结构包装到类中,以便不进行列表或dict迭代时,我得到pylint错误消息:

W0233: __init__ method from a non direct base class 'Nested' is called (non-parent-init-called)
有没有最好的蟒蛇式方法

我的json数据是这样的:

{
    "template"  :   [
        {
            "folder"    :   "/Users/SA/Documents/GIT/rs-finance/templates",
            "basetpl"   :   "tpl.docx",
            "header"    :   "header_tpl.docx",
            "table"     :   "table_tpl.docx", 
            "footer"    :   "footer_tpl.docx"
        }
    ],
    "export"    :   [
        {
            "folder"    :   "/Users/SA/Documents/GIT/rs-finance/export",
            "name"      :   "result.docx"
        }
    ]
}
当我将此数据或其片段加载到dict或list变量时,尝试用此类将其包装:

class Nested ():
    def __init__(self, data):
        if isinstance (data, dict):
            for key, value in data.items():
                if isinstance(value, (float, int, str)):
                    setattr(self, key, value)
                else:
                    setattr(self, key, Nested(value))
        if isinstance(data, list):
            for item in data:
                self.__init__(item)
Pylint不喜欢我的最后一行显式调用uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

更好的做法是编写一个独立的递归函数来执行您想要的操作,然后从_uinit_;调用它

显式调用_uinit _uuu并不错误,但这很奇怪,这就是派林所警告您的

更好的做法是编写一个独立的递归函数来执行您想要的操作,然后从_uinit_;调用它

class Nested:
    def __init__(self, data):
        self.recursive(data)

    def recursive(self, data):
        if isinstance(data, dict):
            for key, value in data.items():
                if isinstance(value, (float, int, str)):
                    setattr(self, key, value)
                else:
                    setattr(self, key, Nested(value))
        elif isinstance(data, list):
            for item in data:
                self.recursive(item)