栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 面试经验 > 面试问答

super()和@staticmethod交互

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

super()和@staticmethod交互

的简短答案

我是在这里错误地调用super(type)还是缺少我想要的东西?

是:是的,您打错了它的名称……而且(实际上是 因为 ),您缺少某些内容。

但是不要难过。这是一个极其困难的课题。

该文档指出

如果省略第二个参数,则返回的超级对象是未绑定的。

未绑定

super
对象的用例极为狭窄且很少见。请参阅Michele Simionato撰写的有关以下内容的文章
super()

  • 关于Python Super的一些知识[1 of 3]
  • 关于Python Super的注意事项[3之2](这一部分专门介绍了未绑定的super)
  • 关于Python Super的一些知识[3 of 3]

此外,他强烈主张

super
从此处删除Python
3中的未绑定内容。

我说过您称其为“错误地”(尽管没有上下文,正确性在很大程度上是没有意义的,而且玩具示例并不能提供太多上下文)。

super
正如Simionato所言,由于未绑定非常罕见,并且可能完全没有道理,因此“正确”的使用方法
super()
是提供第二个论点。

就您而言,使示例工作最简单的方法是

class First(object):  @staticmethod  def getlist():    return ['first']class Second(First):  @staticmethod  def getlist():    l = super(Second, Second).getlist()  # note the 2nd argument    l.append('second')    return la = Second.getlist()print a

如果您认为这样看起来很有趣,那您就没错。但是我认为,大多数人在看到

super(X)
(或希望在自己的代码中尝试时)所期望的就是Python为您提供的
super(X,X)



转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/640100.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号