4 回答

TA貢獻1802條經驗 獲得超5個贊
您正在尋找類的特殊方法??纯?__getattr__和__getitem__。您可以編寫自己的課程。它的這一類的實例可以有 a,b并c作為屬性,可以做你的描述。
這樣的事情可能會做部分您想做的事情:
class DictCollcetion(object):
def __init__(self, dict_):
self.dict = dict_
def __getattr__(self, name):
return {k: k.name for k in self.dict}
def __getitem__(self, key):
return {k: k.key for k in self.dict}

TA貢獻1802條經驗 獲得超10個贊
您是否考慮過僅使用集合?
my_set = {myclass(...),myclass(...),myclass(...)}
props = {k.prop for k in my_set}
雖然您可以創(chuàng)建一個為您完成映射的類,但對我而言,這并不比堅持使用標準映射結構更清楚您的代碼。

TA貢獻1829條經驗 獲得超6個贊
我遇到過像我一樣操縱大量字典或對象的情況。通常,這些對象會從數據庫中提取出來,并通過ORM進行填充,但我也使用CSV文件來完成。
我不確定我的需求是否足夠頻繁/常見,我是否會尋找一個模塊來為其提供語法糖。
添加回答
舉報