我一直坐在这里跑过我必须为学校创建的一些代码(它是一个搜索系统),而且我一直在努力修复这个错误。非常感谢任何帮助。
代码:(我知道缩进是错误的,仅适用于网站格式化)
class Main:
list = []
def __init__(self, item, term):
self.item = item
self.term = term
def add(self, item):
Main.list.append(self.item)
print(Main.list)
def search(self, term):
print(self.term)
if self.term in Main.list:
print("item exists")
else:
print("no such thing")
def running():
command = input("command?")
if command == "/add":
item = Main(input("item to add? "))
item.add(item)
running()
if command == "/search":
searchTerm = Main(input("item to search for"))
searchTerm.search(searchTerm)
print(Main.list)
running()
错误:
Traceback (most recent call last):
File "/x/x/x/x.py", line 27, in <module>
running()
File "/x/x/x/x.py", line 19, in running
item = Main(input("item to add? "))
TypeError: __init__() missing 1 required positional argument: 'term'
答案 0 :(得分:0)
Main
类的构造函数(即__init__
方法)需要两个参数。这意味着你不能只做Main(input("item to add? "))
,它传递一个参数(input()
方法的结果,它返回一个字符串)。
您需要Main(input("item to add? "), something_else)
,即两个参数。
答案 1 :(得分:0)
如果您希望仅在需要时填写该字词,您可以将其传递给 init :
def __init__(self, item, term=''):