如果我对这里显而易见的事情一无所知,请原谅我,但是如果你在变量中保存对super的调用并稍后使用它会发生什么.
这是类定义的一部分,向您展示我的意思.
class CaselessDict(dict):
def __init__(self,*args,**kwargs):
self.super = super(CaselessDict,self) # save super
self.update(*args,**kwargs)
def __getitem__(self,key):
key = self.parsekey(key)
return self.super.__getitem__(key) # use saved super
当我实现这个CaselessDict类时几乎每个方法都有超级的东西.
最佳答案
预期的事情发生了:self.super将只保存一个超级对象,就像super(CaselessDict,self)一样.
这种方法的问题是每个实例只有一个超级属性,所以如果你有更多的类可以使用这种技术,那么只有分配给super last的那个才能正常运行.哎哟!所以,这样做通常不是一个好主意.你可以将属性命名为__super,因此它会被破坏,但我建议只调用super(CaselessDict,self),就像其他人一样.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。