gpt4 book ai didi

python - 缺少 1 个必需的位置参数(创建对象并初始化字典)

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:40 24 4
gpt4 key购买 nike

我看到这个问题之前已经以不同的形式被问过,但我觉得我已经实现了我在这些线程中看到的反馈(主要是确保像我昨晚所做的那样创建对象,并且确保字典已启动,我觉得我已经在第三行中完成了),但我仍然收到错误。任何建议将非常感激。谢谢!

class Groceries:

def __init__(self, grocery_list):
self.grocery_list = {}

def add_item(self, item):
item = input("name: ")
purchased = input(False)
self.grocery_list[item] = purchased

something = Groceries()
something.add_item()

我得到的错误是:

Traceback (most recent call last):
File "intermediate_python.py", line 14, in <module>
something = Groceries()
TypeError: __init__() missing 1 required positional argument: 'grocery_list'

我尝试通过从 def init 语句中删除grocery_list来解决此错误(不知道为什么这会起作用,我只是在玩弄),并且错误被移动到下一行:

Traceback (most recent call last):
File "intermediate_python.py", line 15, in <module>
something.add_item()
TypeError: add_item() missing 1 required positional argument: 'item'

最佳答案

要初始化 Groceries 类的实例,您需要提供在 init 方法中定义的参数“grocery_list”

class Groceries:
def __init__(self, grocery_list):
self.grocery_list = {}

尝试使用以下命令创建实例:

something = Groceries({"milk": 1, "butter": 1})

或者,为了允许空 Groceries 对象,您可以向 init 方法添加一个默认参数,您还应该将该参数的值分配给变量 self.grocery_list,而不是为其分配一个空字典:

class Groceries:
def __init__(self, grocery_list={}):
self.grocery_list = grocery_list

并且使用您的方法 add_item,您再次需要传递一个参数,否则删除该参数(因为您要求将其作为输入)

def add_item(self):
item = input("name: ")
purchased = input("amount: ")
self.grocery_list[item] = purchased


something = Groceries({"milk": 0})
something.add_item()
>> name:
>>> milk
>> amount:
>>> 1

关于python - 缺少 1 个必需的位置参数(创建对象并初始化字典),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45678307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com