VSCode中调用Python类构造函数报错:An expression must come after '('
问题解决与说明
1. 报错的直接原因
你实例化时类名拼写错误了:把定义好的CircularlyLinkedList写成了CirculralyLinkedList(多了一个r)。VSCode的实时语法检测会立刻识别到这个未定义的名称,所以抛出了“An expression must come after '('”的错误;而IDLE可能因为会话环境的检测延迟,或是你在不同会话里测试,才没触发这个错误。修正拼写后,ls1 = CircularlyLinkedList()就能正常运行。
2. 关于括号后输入内容的说明
你的CircularlyLinkedList类的__init__方法没有定义额外参数(除了默认的self),所以正常实例化时括号里不需要输入任何内容。如果想要在实例化时传入内容来初始化链表,需要修改__init__方法,比如支持传入初始元素集合:
class CircularlyLinkedList: def __init__(self, initial_items=None): self.tail = None self.size = 0 # 如果传入了初始元素,逐个添加到链表 if initial_items: for item in initial_items: # 这里假设你已经实现了add方法用于添加元素 self.add(item)
修改后,就可以在实例化时传入可迭代对象(比如列表):
ls1 = CircularlyLinkedList([1, 2, 3])
内容的提问来源于stack exchange,提问作者한준혁
相关产品推荐
相关产品推荐

