相對較新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,......好吧,那就是問題;在這裏的代碼中,它們在不同的時間。 –