2009-06-28 61 views
1

查看有用的結構Python 3。對於那些從來沒有注意到的人(像我):對於字典d,你可以寫k = d.keys(),即使你更新d變量k仍然會給你更新的密鑰。你可以寫,然後k1 & k2,它會永遠給你d1.keys() & d2.keys()簡單的方法來實現動態視圖?

我想實現這個我個人的待辦事項管理器,但我想使複雜的觀點動態,或懶洋洋地評估。也就是說,我有一些看法稱爲sopostpriority,我希望能寫:

now = so | phone & priority 

這樣以後,當__repr__(now)被調用時,僅在點並進行了評價。

我首先想到的是超載邏輯運算符,所以我改變View.__and__創建記得自己爲兩個子視圖的複合材料,在計算適用&給他們一個新的觀點。但似乎有相當多的邏輯運算符,所以我不確定我是否做對了。

有沒有一個標準的庫類可以幫助我呢?我怎樣才能簡化流程?

+0

「我首先想到的是超載邏輯運算符,所以我改變了View .__和___來創建一個新的視圖,它自己記得是兩個子視圖的組合,並且在計算時應用它們。「這似乎是正確的。我不知道是否有任何圖書館可以緩解重複。 – 2009-06-28 07:12:00

回答

1

那麼,有一個collection.UserList類定義了他們中的大多數,也許這意味着你不必覆蓋所有這些。

1

沒有「簡單」的方法去做,特別是如果你想懶惰的行爲,如上所述。但仍然沒有那麼多邏輯運營商,其中只有三家:__and__,__or____xor__

(額外的效率,你可以選擇實現就地版本__iand____ior____ixor__,但如果你不正常的版本將被調用作爲備用)

相關問題