我有一些令人困惑的代码,我正在尝试迁移到Typescript。看这个:
collation := &mgo.Collation{
Locale: "en",
Strength: 2,
}
err := collection.Find(query).Collation(collation)
在我看来,八达通对象被用作名为special_octopoda的字典中的键。 Python允许这样做吗?它肯定不在Typescript / Javascript中。
答案 0 :(得分:1)
是的,您可以将任何不可变的对象用作Python字典中的键。
Octopus类必须以某种方式创建不可变的实例。例如,它可能是元组的子类,或者使用__slots__
来做到这一点。
答案 1 :(得分:0)
只有不可变的类型可以用作python中的键。要解决此问题,请将其包装为元组:
self.special_octopoda(<something>, Octopus(...))
或使您的课程可散列:
class Octopus:
def __hash__(self):
# hash implementation