当前位置:   article > 正文

python支持使用字典的键作为索引_是否可以在Python 3中使用类作为字典键?

python dict用class作为键

我正在尝试减少代码中的复制/粘贴,并且偶然发现了这个问题.我已经google了答案,但所有答案都使用类的实例作为键,我找不到任何关于使用类定义本身作为键(我不知道是否可能).

我的代码是这样的:

# All chunkFuncs keys are class definitions, all values are functions

chunkFuncs = {Math_EXP : Math_EXPChunk, Assignment : AssignmentChunk, Function : FunctionChunk}

def Chunker(chunk, localScope):

for chunkType in chunkFuncs:

if isinstance(chunk,chunkType):

# The next line is where the error is raised

localScope = chunkFuncs[chunk](chunk,localScope)

return localScope

而错误就是这个

TypeError: unhashable type: 'Assignment'

以下是类定义:

class Math_EXP(pyPeg.List):

grammar = [Number,Symbol],pyPeg.maybe_some(Math_OP,[Number,Symbol])

class Assignment(pyPeg.List):

grammar = Symbol,'=',[Math_EXP,Number]

class Function(pyPeg.List):

grammar = Symbol,'(',pyPeg.optional(pyPeg.csl([Symbol,Number])),')'

有没有其他方法可以用来获得相同的效果?

谢谢.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/665784
推荐阅读
相关标签
  

闽ICP备14008679号