在 Python 3 中使用类和函数使用和更新字典时遇到问题 [新手]
Posted
技术标签:
【中文标题】在 Python 3 中使用类和函数使用和更新字典时遇到问题 [新手]【英文标题】:Trouble working with and updating dictionary using a class and function in Python 3 [Newbie] 【发布时间】:2018-07-26 12:33:23 【问题描述】:我对编码有点陌生。在过去一年左右的时间里,我一直在自学。我正在尝试建立一个更坚实的基础并尝试创建非常简单的程序。我创建了一个类,并试图将“宠物”添加到可以容纳多个“宠物”的字典中。我已经尝试以多种不同的方式更改代码,但没有任何效果。这是我目前所拥有的。
# 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
的方式是
x[y] = z
这会将键 y
的值设置为等于 z
,或者,如果没有具有该名称的键,则使用值 z
创建一个新键 y
。
更新代码:
(我将其定义为类方法,因为from_input
方法也是其中之一,据我了解,这将在继承类时保持工作,有关更多信息,您可能想查看this)
@classmethod
def createpet(cls):
pet = cls.from_input()
if pet.name in cls.pets:
raise ValueError("duplicate ID")
else:
cls.pets[pet.name] = pet
【讨论】:
以上是关于在 Python 3 中使用类和函数使用和更新字典时遇到问题 [新手]的主要内容,如果未能解决你的问题,请参考以下文章