0

在 python 中处理自定义列表类,例如

class ListData:
        def __init__(self):
                 self.data = []

        def add(self, x):
                 self.data.append(x)

        def delete(self, x):
                 self.data.remove(x)

测试时,总是返回 None :

from list import ListData

listdata = ListData()


mylist = [34, 32, 34, 89]
mylist = listdata.add(2)
mylist = listdata.add(5)

print mylist # Prints None
4

2 回答 2

0

你没有从addanddelete方法返回任何东西,所以将它们的返回值分配给mylist你就剩下None. 摆脱额外的分配,你的代码就可以工作了。

mylist = [34, 32, 34, 89]
listdata.add(2)
listdata.add(5)

print mylist

或者,您可以将方法修改为 return self,尽管这样做没有太大价值。

def add(self, x):
    self.data.append(x)
    return self

def delete(self, x):
    self.data.remove(x)
    return self
于 2013-01-30T20:30:40.577 回答
0

您可以更改您的 API 以便能够将其打印为列表。您可以阅读以下内容

不可变与可变类型

class ListData:
        def __init__(self):
                 self.data = []

        def add(self, x):
                 self.data.append(x)

        def delete(self, x):
                 self.data.remove(x)

        def data(self):
            return self.data




a = ListData()
a.add(1)
a.add(2)
print a.data

将输出:

[1, 2]

于 2013-01-30T20:36:02.107 回答