问题标签 [super]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
43479 浏览

python - 在 Python 中使用 super() 关键字的单继承的基本示例是什么?

假设我设置了以下类:

我如何(如果可以的话)在这种情况下使用 super() 来消除重复代码?

0 投票
6 回答
4881 浏览

python - 在 Python 中使用 super() 是个好主意吗?

或者我应该明确引用我想调用其方法的超类吗?

在引用它们的构造函数时重复超类的名称似乎很脆弱,但是这个页面http://fuhm.net/super-harmful/提出了一些反对使用 super() 的好论据。

0 投票
3 回答
3115 浏览

python - 方法的默认参数值被评估*一次*

我发现新式类中的子类化和字典更新有一个奇怪的问题:

在调试中,在第二次调用(c(3))中,您可以看到在a构造函数self.props内已经等于{'arg': 2},并且当b之后调用构造函数时,它变成{'arg': 3}了两个对象!

此外,构造函数调用的顺序是:

如果您在构造函数中替换self.props.update()为,一切都会好起来的,并且会按预期运行self.props = {'arg': val}b

但我真的需要更新这个属性,而不是替换它。

0 投票
3 回答
12634 浏览

objective-c - 在 Objective C 类别中使用 Super?

我想覆盖一个我没有源代码的 Objective C 类中的方法。

我已经调查过了,似乎类别应该允许我这样做,但我想在我的新方法中使用旧方法的结果,使用 super 来获取旧方法的结果。

每当我尝试这个时,我的方法都会被调用,但是“super”是 nil ......知道为什么吗?我正在使用 XCode 2.2 SDK 进行 iPhone 开发。我肯定在使用一个类的实例,而该类的方法是一个实例方法。

注意和澄清:从我在 Apple Docs 中看到的内容来看,在我看来这应该被允许吗?

developer.apple.com 上的类别文档: 当类别覆盖继承的方法时,类别中的方法可以像往常一样通过向 super 发送消息来调用继承的实现。但是,如果一个类别覆盖了该类别的类中已经存在的方法,则无法调用原始实现。

0 投票
3 回答
15302 浏览

java - 扩展通用抽象类和正确使用 Super

如何正确调用 super 将AT泛型传递Tool给 AbstractTool 构造函数?

似乎无论我AT在声明Tool(Say, Tool<Thing>) 时选择什么,我总是得到一个AbstractThing而不是Thing. 这似乎违背了泛型的目的......

帮助?

0 投票
2 回答
5654 浏览

objective-c - 在 Objective-C 中使用类别的私有方法:从子类调用 super

我正在阅读如何在 Objective-C 中实现私有方法(在 Objective-C中为类定义私有方法的最佳方式),一个问题突然出现在我的脑海中:

您如何设法实现受保护的方法,即子类可见的私有方法?

假设我有一个 MySuperClass,它的 Category 包含它的所有私有方法,并且我想实现一个 MySubclass 覆盖或调用超级 MySuperClass 私有方法之一。这可能吗(使用类别方法来实现私有方法)?

看一下这段代码,在底部有覆盖的方法。

希望有人已经弄清楚了。

干杯!

0 投票
4 回答
143610 浏览

python - super() 失败并出现错误:当父级不从对象继承时,TypeError "argument 1 must be type, not classobj"

我得到一些我无法弄清楚的错误。任何线索我的示例代码有什么问题?

我从“超级”内置方法的帮助中获得了示例测试代码。

这是错误:

仅供参考,这是 python 本身的帮助(超级):

0 投票
2 回答
200 浏览

java - 如何在单个对象上接受泛型参数的超类型?

是否可以只接受类的泛型类型的超类型?

我正在寻找的是这样的:

我真的不再需要它了(一开始它可能并不是那么有用),但我很好奇这是否可能,如果没有,为什么。

0 投票
5 回答
60335 浏览

python - 将 super 与类方法一起使用

我正在尝试学习 Python 中的 super() 函数。

我以为我已经掌握了它,直到我遇到这个例子(2.6)并发现自己卡住了。

http://www.cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.html#super-with-classmethod-example

当我在示例之前阅读此行时,这不是我所期望的:

如果我们使用类方法,我们没有实例可以调用 super 。对我们来说幸运的是, super 甚至可以使用类型作为第二个参数。--- 类型可以直接传给super,如下图。

这正是 Python 告诉我的,通过说应该用 B 的实例调用 do_something() 是不可能的。

0 投票
3 回答
7659 浏览

python - 在嵌套类中使用 super()

想象一下:

这会产生一个错误:

我试过A.B了,但它说A没有定义。

更新:

我发现了问题。

我上过这样的课:

在该范围内,尚未定义 A。