【Error】条件语句中的函数未加括号
其实时候遍历打印单向循环链表总也不显示,其他环节的逻辑都没问题,那只能查typo了。
代码改了改,突出问题所在:
class Node():
def __init__(self,elem):
self.elem = elem
self.next = None
class SLL(object):
def __init__(self, node = Node(3)):
#加了一个节点Node(3)
self._head = node
if node:
node.next = node
def is_empty(self):
'''链表是否为空'''
return self._head == None
def trying(self):
if self.is_empty:
# if self.is_empty():
print('空')
else:
print('非空')
if __name__ == '__main__':
ll = SLL()
print(ll.is_empty())
#因为加了一个节点Node(3)
#所以这个肯定是False
ll.trying()
#应该返回'非空'
这个单向循环链表里挂了一个Node(3)
所以肯定是非空链表,判断肯定是False
,打印出来的应是非空
,执行应该如下:
def trying(self):
if self.is_empty():
# print('空')
else:
print('非空')
#非空
如果忘了加括号,执行的就变成:
def trying(self):
if self.is_empty:
print('空')
#else:
# print('非空')
#空
重点是这种typo也不报错,猝不及防,括号加上后问题解决。