在python 3中使用类和函数处理和更新字典时遇到问题[新手]

Trouble working with and updating dictionary using a class and function in Python 3 [Newbie]

我对编码有些陌生。过去一年左右,我一直在自学。我试图建立一个更坚实的基础,我正在努力创造非常简单的程序。我创建了一个类,并试图将"pets"添加到一个可以容纳多个"pets"的字典中。我尝试了很多不同的方法来修改代码,但是没有任何效果。这是我到目前为止所拥有的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Created class
class Animal:

# Class Attribute
classes = 'mammal'
breed = 'breed'

# Initializer/Instance Attribrutes
def __init__ (self, species, name, breed):
    self.species = species
    self.name = name
    self.breed = breed

# To get different/multiple user input
@classmethod
def from_input(cls):
    return cls(
            input('Species: '),
            input('Name: '),
            input('Breed: ')
            )

# Dictionary
pets = {}

# Function to add pet to dictionary
def createpet():
    for _ in range(10):
        pets.update = Animal.from_input()
        if pets.name in pets:
            raise ValueError('duplicate ID')

# Calling the function
createpet()

我尝试将其更改为列表并使用"附加"工具,但这不起作用。我确信这段代码有很多错误,但我甚至不知道该怎么做。我已经研究过"收藏"模块,但还不能很好地理解它,不知道这是否有帮助。我要寻找的是可以运行"createpet()"函数的地方,每次添加一个新的宠物,包括品种、名称和品种。我研究过sqlite3,想知道这是否是一个更好的选择。如果可能的话,我会去哪里学习并更好地理解这个模块(又称为好的初学者教程)。任何帮助都将不胜感激。谢谢!


(首先,在将副本添加到词典之前,必须检查副本。)在字典中添加项目的方法是

1
x[y] = z

这将设置键y等于z的值,或者如果没有具有该名称的键,则使用值z创建一个新键y。更新代码:(我将其定义为ClassMethod是因为from_input方法也是一种方法,根据我对这一点的理解,在继承类时,它将保持工作状态,以获取您可能希望了解的更多信息)

1
2
3
4
5
6
7
@classmethod
def createpet(cls):
    pet = cls.from_input()
    if pet.name in cls.pets:
        raise ValueError("duplicate ID")
    else:
        cls.pets[pet.name] = pet