2017-01-10 88 views
0

我正在开发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 %} 

有什么想法吗?

最好的问候

+0

HTTPS:/ /docs.python.org/3/library/functions.html#isinstance – wwii

回答

0

你基本上想知道对象属于哪个类。

您可以检查使用object_name.__class__.__name__,这会给你在这种情况下,无论是PersonPet。因此,您可以在if条件中将其替换为。

{% for a in personpets %} if object.__class__.__name__ == "Pet": print a.petbirthdate else: print a.personbirthdate {% endblock %}

干杯

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 %}