如何在Python中显示与该对象的属性匹配的整个对象?

时间:2019-05-17 17:30:51

标签: python class attributes

我正在编写一个跟踪农场中动物的程序,我希望能够通过例如名称,性别,年龄等来搜索动物,这些都是对象的属性。我对Python完全陌生,因此非常感谢所有帮助。

这是到目前为止我所拥有的代码,但是它只会将要搜索的属性广告到列表中,然后打印出来。我希望能够将整个对象添加到列表中,并通过该列表打印整个对象。

class Djur:

    def __init__(self, art, namn, ålder, kön, gravid):
        self.art = art
        self.namn = namn
        self.age = ålder
        self.gender = kön
        self.gravid = gravid


    def __str__(self):
        return ("Art: " + str(self.art) + " " + "\n"
                "Namn: " + str(self.namn) + " " + "\n"
                "Ålder: " + str(self.age) + " " + "\n"
                "Kön: " + str(self.gender) + " " + "\n"
                "Gravid: " + str(self.gravid))
    def __repr__(self):
        return str(self)




try:

                val2 = input("Ange sök-text")

                l=[]

                for x in djurlista:
                    y = x.art or x.gender or x.namn or x.gravid or x.age
                    if y == val2:
                        l.append(x.art)
                        print(l)
                meny()


            except ValueError:
                print("Var god välj ett giltigt alternativ!")

1 个答案:

答案 0 :(得分:0)

要使用对象创建列表,只需编写l.append(x)而不是l.append(x.art)。现在,您只需追加属性art