2014-02-13 38 views
0

什麼是要實現這樣的事情最好的辦法:定義值有

dic = { 
    'foo': Tree(), 
    'foobar': #the method 'branch()' executed on 'foo' 
} 

可以這樣做我描述的方式,或者我應該使用dic['foobar'] = dic['foo'].branch()第二分配?

+0

如果字典中有3對,該怎麼辦?記住字典是無序的。 – Christian

+0

@Wooble我編輯了我的問題,使我的意圖更清楚。 – Joren

回答

0

我看不出有任何理由爲什麼不這樣做喜歡:

t = Tree() 
dic = {'foo': t, 'foobar': t.branch()} 

但是,也許這一招可以幫助你:

dic = {'foo': Tree(), 'foobar': lambda: dic['foo'].branch()} 

的缺點是,你必須使用dic['foobar']()代替dic['foobar'],並且每次都執行.branch()函數,這可能不是您想要的。

+0

有時最明顯的答案是最好的答案。謝謝。 – Joren