1
我需要迭代對象內的多個屬性。每個屬性都初始化爲None,並且在程序過程中每個屬性都會存儲一個單獨的對象。我需要迭代16個屬性,條件是屬性將按預定順序存儲對象。例如,如果屬性10爲空,則屬性11到16也將爲空,因此我不需要遍歷任何空屬性。我最初的結果是使用「如果」每個語句屬性是這樣的:Python:在條件內對預定條件進行迭代
Class Object1:
def __init__(self):
self.attribute1=None
self.attribute2=None
self.attribute3=None
self.attribute4=None
...
def repeating_function(self):
if self.attribute1!=None:
self.attribute1.attribute=Callback1
if self.attribute2!=None:
self.attribute2.attribute=Callback2
if self.attribute3!=None:
self.attribute3.attribute=Callback3
...
但是,由於其中的屬性存儲對象,我結束了這個序列:
class Object1:
def __init__(self):
self.attribute1=None
self.attribute2=None
self.attribute3=None
self.attribute4=None
self.attribute5=None
def repeating_function(self):
if self.attribute1!=None:
self.attribute1.attribute=Callback1
if self.attribute2!=None:
self.attribute2.attribute=Callback2
if self.attribute3!=None:
self.attribute3.attribute=Callback3
...
基本上,我的問題是:如果第二個例子在迭代非空屬性時效率更高。因爲我在第二個示例中添加了條件,所以我不確定哪種方法更高效。
如果用「高效」來表示速度,那麼就忘了它。想想你要花多長時間來編寫,閱讀或維護這樣的代碼。想出一個方法來做一個列表或字典,並忘記微秒。 – alexis 2014-10-05 14:40:07
我很確定你想要一個'list','dict',甚至是一個單獨的類而不是16個單一的屬性。代碼會變得糟糕。 – tamasgal 2014-10-05 14:40:10
Btw .:不成熟的優化是一切罪惡的根源。 – tamasgal 2014-10-05 14:40:43