如何将地图添加为类字段?

时间:2011-07-28 18:24:29

标签: python

我想添加一个字典,将对象映射到对象列表作为类的实例变量。在Python中使用它的惯用方法是什么?这是我如何做到的:

class MyClass:
    def __init__(self):
        self.myDict = { None : [None] }  

2 个答案:

答案 0 :(得分:1)

你已经找到了惯用的方法!

答案 1 :(得分:0)

就我个人而言,如果您希望选择以一定数量的对象开始,并且希望更清楚您想要的内容,我会这样做。

class MyClass:
    def __init__(self, objlistdict=None):
        "Takes an optional initial dictionary with objects as keys and lists of objects as values"  # docstrings are very useful for documentation
        self.myDict = {} if objlist is None else objlist # sets `self.myDict` to be the initial dict, otherwise makes it an empty one

请注意,您用作键的对象确实需要是可清除的,并且我相信即使您正在使用的可变对象仍然定义了哈希方法,也建议使用不可变对象,因为比较对象的事实等于通常应该具有相同的散列,因此更改对象的某些内容将更改散列值,这可能会导致无法访问原始键的值时出现问题。