我有一個數組row
。我想將對象actor
的一組屬性添加到數組中。但是,並不是所有的角色都具有每個屬性。Python:循環有可能的屬性錯誤
我想運行一個循環,如果它存在將會添加屬性,但如果不存在則添加'none'
。
我似乎無法找到一種方法來做循環中的測試,使用try
或hasattr
。這是我得到的。當然,這是行不通的,因爲這些屬性是在循環之外被引用的:
for attribute in [actor.x, actor.y, actor.parent, actor.force, actor.hunger, actor.size]:
try:
row.append(attribute)
except AttributeError:
row.append('none')
什麼是最好的方式去做這件事?
爲什麼所有演員不具有相同的屬性?對我來說,聽起來好像你的生活可能會更容易,如果所有的演員都繼承了同一個對象,並且如果一個特定的演員不具有.force,那麼分配self.force = None。 '特殊情況不足以違反規則。' – TehTris
爲了擴展TehTris的問題:你想達到什麼目的?把屬性扔進一個列表似乎是一種很好的方式來丟失信息並獲得我不知道的東西。 – msw
或者,也許「演員」根本不應該是一個對象(或稱爲組件或命名空間或其他),而應該是一本字典。或者,也許是一個單一的'屬性'成員是一個字典的對象。 – abarnert