检查对象构造函数
问题描述:
我正在开发Flask-Python应用程序,我想知道如何获取对象类/构造函数。检查对象构造函数
我想这是因为我不得不合并两个不同的数组,现在我有一个结果数组与两个类的对象。
想象一下:
[Person, Person, Person, Person]
[Pet, Pet, Pet, Pet, Pet]
我在合并顺序的生日两个数组,我有一个最后的数组:
[Person, Pet, Pet, Person, Pet, Pet, Person]
但现在我要打印出来我PetPerson.html。如果出生日期的变量不同,我如何区分两者?
{% for a in personpets %}
if this object is a pet:
print a.petbirthdate
else:
print a.personbirthdate
{% endblock %}
有什么想法吗?
最好的问候
答
你基本上想知道对象属于哪个类。
您可以检查使用object_name.__class__.__name__
,这会给你在这种情况下,无论是Person
或Pet
。因此,您可以在if条件中将其替换为。
{% for a in personpets %} if object.__class__.__name__ == "Pet": print a.petbirthdate else: print a.personbirthdate {% endblock %}
干杯
答
您可以使用继承。
比方说,两个人与宠物的动物:
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 %}
HTTPS:/ /docs.python.org/3/library/functions.html#isinstance – wwii