我想构造一个类以简化python列表。我可以通过定义这样的函数来做到这一点;
liste=[[1,2],3,[4],[[5],6]]
flatLIST=[]
def recur(a):
if (type(a)==list):
for i in a:
recur(i)
else:
flatLIST.append(a)
recur(liste)
flatLIST
[1、2、3、4、5、6]
但是当我无法通过构造一个类来实现它时。
class flatYVZ():
def __init__(self,liste):
self.flatLIST=[]
recur(liste)
def recur(self,a):
if (type(a)==list):
for i in a:
recur(i)
else:
self.flatLIST.append(a)
def flatting(self):
self.sonuc=self.flatLIST
example=[[1,2],3,[4],[[5],6]]
objec=flatYVZ(example)
objec.sonuc
[]
答案 0 :(得分:0)
您需要引用self
,否则您将调用之前定义的函数,而不是类方法。
在这里,您需要将recur(liste)
中的self.recur(liste)
更改为__init__
,并将recur(i)
中的self.recur(i)
更改为recur(self, a)
。
class flatYVZ():
def __init__(self,liste):
self.flatLIST=[]
self.recur(liste)
def recur(self,a):
if (type(a)==list):
for i in a:
self.recur(i)
else:
self.flatLIST.append(a)
def flatting(self):
self.sonuc=self.flatLIST
example=[[1,2],3,[4],[[5],6]]
objec=flatYVZ(example)
print(objec.flatLIST)