我正在开发一个Flask-Python应用程序,我想知道如何获得一个对象类/构造函数。
我想要这个,因为我必须合并两个不同的数组,现在我有一个结果数组,其中包含两个类的对象。
想象一下:
[Person, Person, Person, Person]
[Pet, Pet, Pet, Pet, Pet]
我在birthdate顺序中合并了两个数组,并且我有一个最终数组:
[Person, Pet, Pet, Person, Pet, Pet, Person]
但现在我想在我的 PetPerson.html 上打印它们。如果 birthdate 的变量不同,我如何区分它们?
{% for a in personpets %}
if this object is a pet:
print a.petbirthdate
else:
print a.personbirthdate
{% endblock %}
有什么想法吗?
祝你好运
答案 0 :(得分:0)
你基本上想知道对象属于哪个类。
您可以使用object_name.__class__.__name__
进行检查,在这种情况下,这会为您提供Person
或Pet
。因此,您可以在if条件中将其替换为。
{% for a in personpets %}
if object.__class__.__name__ == "Pet":
print a.petbirthdate
else:
print a.personbirthdate
{% endblock %}
干杯
答案 1 :(得分:0)
您可以使用继承。
让我们说人和宠物都是动物:
class Animals(object):
get_birthdate(self):pass
然后你的人和宠物继承了动物:
class Person(Animal):
get_birthdate(self):
return self.personbirthdate
class Pet(Animal):
get_birthdate(self):
return self.petbirthdate
然后在你的模板中:
{% for a in personpets %}
{{ a.get_birthdate }}
{% endblock %}