构造一个类来拼合python列表

时间:2018-11-27 06:18:22

标签: python class object

我想构造一个类以简化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
  
    

[]

  

1 个答案:

答案 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)