构造类来展平python lis

2024-09-27 00:20:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想构造一个类来展平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

[]


Tags: inselfforifexampledeftypeelse
1条回答
网友
1楼 · 发布于 2024-09-27 00:20:35

您需要引用self,否则将调用之前定义的函数,而不是类方法。你知道吗

在这里,您需要在__init__中将recur(liste)更改为self.recur(liste),在recur(self, a)中将recur(i)更改为self.recur(i)。你知道吗

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)

相关问题 更多 >

    热门问题