相对较新Python
。 我试图练习链表,但我坚持错误,并找不出问题所在。python int对象不可调用?
错误:
self.assertEqual(l.size(), 1)
TypeError: 'int' object is not callable
代码:
from node import Node
class List:
def __init__(self):
self.head = None
self.size = 0
def add(self, item):
temp = Node(item)
temp.setNext(self.head) # ERROR ON THIS LINE
self.head = temp
size += 1
def size(self):
return self.size
...
节点:
class Node:
def __init__(self, data):
self.data = data
self.next = None
....
测试:
import unittest
import unorderedlist
class TestUnorderedList(unittest.TestCase):
def test_add(self):
l = unorderedlist.List()
l.add(8)
self.assertEqual(l.size(), 1)
if __name__ == '__main__':
unittest.main()
这很有趣,因为如果我将size()
重命名为len并将其称为l.len()
,它可以正常工作。任何人都有线索?
我建议'self._size'为数据;这样你就不会跺脚了。 –
'self.size'是一种方法还是数据? –
@PeterWood,......好吧,那就是问题;在这里的代码中,它们在不同的时间。 –