AttributeError: ‘dict’ 对象没有属性 ‘add’

AttributeError: ‘dict’ 对象没有属性 ‘add’

AttributeError: ‘dict’ object has no attribute ‘add’

当我们尝试add()在字典而不是set对象上调用方法时,会出现 Python“AttributeError: ‘dict’ object has no attribute ‘add’”。要解决该错误,请使用set()构造函数创建一个空集,例如
my_set = set().

attributeerror 字典对象没有添加属性

下面是错误如何发生的示例。

主程序
# 👇️ this is a dictionary my_set = {} print(type(my_set)) # 👉️ <class 'dict'> # ⛔️ AttributeError: 'dict' object has no attribute 'add' my_set.add('hello')

当我们使用空花括号{}时,我们实际上创建了一个字典,而字典没有add()方法。

使用set()构造函数创建一个空集对象。

主程序
my_set = set() my_set.add('a') my_set.add('b') my_set.add('a') print(my_set) # 👉️ {'a', 'b'}

set.add
方法将提供的元素添加
set.

set调用add.

主程序
my_set = set() # 👇️ reassigned set to dictionary by mistake my_set = {} # ⛔️ AttributeError: 'dict' object has no attribute 'add' my_set.add('a')

我们最初在变量中存储了一个set对象,但后来我们将它设置为
dict导致错误的对象。

推导式的语法set如下所示。

主程序
my_list = ['a', 'b', 'c', 'a'] # 👇️ set comprehension my_set = {element for element in my_list} print(my_set) # 👉️ {'b', 'c', 'a'}

如果您尝试将键值对添加到字典中,请使用括号表示法。

主程序
my_dict = {'name': 'Alice', 'age': 30} # ✅ add key-value pairs to dict my_dict['country'] = 'Austria' my_dict['prof'] = 'programmer' # {'name': 'Alice', 'age': 30, 'country': 'Austria', 'prof': 'programmer'} print(my_dict) print(my_dict['country']) # 👉️ Austria
括号语法可用于访问键的值以及设置或更新特定键的值。

开始调试的一个好方法是print(dir(your_object))查看字典具有哪些属性。

这是打印 a 的属性的示例dict

主程序
my_dict = {'name': 'Alice', 'age': 30} # [...'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', # 'pop', 'popitem', 'setdefault', 'update', 'values' ...] print(dir(my_dict))

如果将一个类传递给
dir()函数,它会返回该类属性的名称列表,并递归地返回其基类的属性。

如果您尝试访问不在此列表中的任何属性,您将收到“AttributeError:‘dict’对象没有属性错误”。

由于dict对象没有add()方法,因此导致错误。