2017-01-10 68 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 %}