2011-10-13 44 views
0

函數A獲取一個普通的字典作爲參數並做一些處理。使用字典子類,其中字典是預期

def A(dict): 
    ... 
    return 

現在我有一個類從普通的字典類繼承:

class MyDict(dict): 
    def __getitem__(self, key): 
     return dict.__getitem__(self, key) 
    def __setitem__(self, key, val): 
     dict.__setitem__(self, key, val) 

那麼我可以用MyDict,而不是普通的字典爲:

my_dict = MyDict() 
A(my_dict) 

具體來說,在我的情況下,A做xml-rpc序列化,錯誤說不能編組MyDict。

+0

正如其中一個答案所說,如果沒有函數中發生的事情的完整細節,您的問題將不會被回答。請顯示一個非常小的,完整的函數,我們可以自己運行(http://stackoverflow.com/questions/4057778/good-newbie-instructions-for-creating-minimal-complete-bug-examples/4284676#4284676)顯示給你麻煩的行爲。 – bignose

回答

2

這完全取決於A()的作用。如果它只是調用映射協議,那麼你可以使用它沒有問題。如果它需要關於傳遞類型的更多細節,那麼它有可能無法正確運行。