我想添加一个字典,将对象映射到对象列表作为类的实例变量。在Python中使用它的惯用方法是什么?这是我如何做到的:
class MyClass:
def __init__(self):
self.myDict = { None : [None] }
答案 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
请注意,您用作键的对象确实需要是可清除的,并且我相信即使您正在使用的可变对象仍然定义了哈希方法,也建议使用不可变对象,因为比较对象的事实等于通常应该具有相同的散列,因此更改对象的某些内容将更改散列值,这可能会导致无法访问原始键的值时出现问题。