Python Pylint说:W0233:_init__调用来自非直接基类“嵌套”的方法(调用非父init)
我也是编程和python方面的新手。当我试图将我的数据结构包装到类中,以便不进行列表或dict迭代时,我得到pylint错误消息: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" :
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)