gpt4 book ai didi

python - 如果将对 super 的调用保存在变量中以供将来使用,会发生什么情况?

转载 作者:太空狗 更新时间:2023-10-30 01:17:08 25 4
gpt4 key购买 nike

请原谅我对这里显而易见的内容一无所知,但是如果您将对 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 类时出现的,几乎每个方法中都有 super。

最佳答案

预期的事情发生了:self.super 将只持有一个 super 对象,它的行为就像 super(CaselessDict, self)

这种方法的问题是每个实例只有一个 super 属性,所以如果你有更多的类会使用这种技术,只有分配给 super 最后会正常运行。哎哟!所以,这样做通常不是一个好主意。您可以将属性命名为__super,这样它就会被破坏,但我建议像其他人一样调用super(CaselessDict, self)

当然,在 Python 3 中喜新厌旧,一个简单的 super() 调用就足够了。

关于python - 如果将对 super 的调用保存在变量中以供将来使用,会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7703230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com