Python数据列表问题

时间:2013-01-30 20:27:23

标签: python list error-handling

在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

2 个答案:

答案 0 :(得分:0)

您没有从adddelete方法返回任何内容,因此将其返回值分配给mylist会使您None。摆脱额外的任务,你的代码就可以了。

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

print mylist

或者您可以修改方法以返回self,但这样做的价值不大。

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

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

答案 1 :(得分:0)

您可以更改API,以便将其作为列表打印。你可以阅读以下内容

Immutable vs Mutable types

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]