假设我有一个名为dogs
的列表,其中包含了Dog
类的对象。我想将列表中的每个对象重命名为dog的id
属性,同时仍然能够修改每个索引处的对象。
class Dog:
def __init__(self, name, age, breed, id):
self.name = name
self.age = age
self.breed = breed
self.id = id
dogs = []
intake = input("Enter the number of dogs to intake:")
for i in range(0,int(intake)):
name = input("Name of dog: ")
age = input("Age of dog: ")
breed = input("Breed of dog: ")
dog_id = input("Dog ID: ")
dogs.append(Dog(name, age, breed, dog_id))
如果你打印列表中的所有对象,你会得到类似这样的结果:
[<__main__.Dog object at 0x1234>, <__main__.Dog object at 0x5678>]
我想将列表中的所有对象重命名为dog id,保留它们的属性。
2条答案
按热度按时间snz8szmq1#
如果你想使用dog_id访问数据,最好使用嵌套字典。
您可以使用ID访问任何名称或品种或年龄。(记住ID应该用引号括起来,因为它是一个字符串,如果在获取dog_id的输入时使用int(),则不必这样做)
要更改值,可以执行以下操作
k7fdbhmy2#
对于像这样的行为,你需要在Dog类上插入__str__方法,你还必须逐个打印dogs,或者在每个dogs上调用str(dog