问题标签 [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.
python - 在 Python 中使用 super() 关键字的单继承的基本示例是什么?
假设我设置了以下类:
我如何(如果可以的话)在这种情况下使用 super() 来消除重复代码?
python - 在 Python 中使用 super() 是个好主意吗?
或者我应该明确引用我想调用其方法的超类吗?
在引用它们的构造函数时重复超类的名称似乎很脆弱,但是这个页面http://fuhm.net/super-harmful/提出了一些反对使用 super() 的好论据。
python - 方法的默认参数值被评估*一次*
我发现新式类中的子类化和字典更新有一个奇怪的问题:
在调试中,在第二次调用(c(3)
)中,您可以看到在a
构造函数self.props
内已经等于{'arg': 2}
,并且当b
之后调用构造函数时,它变成{'arg': 3}
了两个对象!
此外,构造函数调用的顺序是:
如果您在构造函数中替换self.props.update()
为,一切都会好起来的,并且会按预期运行self.props = {'arg': val}
b
但我真的需要更新这个属性,而不是替换它。
objective-c - 在 Objective C 类别中使用 Super?
我想覆盖一个我没有源代码的 Objective C 类中的方法。
我已经调查过了,似乎类别应该允许我这样做,但我想在我的新方法中使用旧方法的结果,使用 super 来获取旧方法的结果。
每当我尝试这个时,我的方法都会被调用,但是“super”是 nil ......知道为什么吗?我正在使用 XCode 2.2 SDK 进行 iPhone 开发。我肯定在使用一个类的实例,而该类的方法是一个实例方法。
注意和澄清:从我在 Apple Docs 中看到的内容来看,在我看来这应该被允许吗?
developer.apple.com 上的类别文档: 当类别覆盖继承的方法时,类别中的方法可以像往常一样通过向 super 发送消息来调用继承的实现。但是,如果一个类别覆盖了该类别的类中已经存在的方法,则无法调用原始实现。
java - 扩展通用抽象类和正确使用 Super
如何正确调用 super 将AT
泛型传递Tool
给 AbstractTool 构造函数?
似乎无论我AT
在声明Tool
(Say, Tool<Thing>
) 时选择什么,我总是得到一个AbstractThing
而不是Thing
. 这似乎违背了泛型的目的......
帮助?
objective-c - 在 Objective-C 中使用类别的私有方法:从子类调用 super
我正在阅读如何在 Objective-C 中实现私有方法(在 Objective-C中为类定义私有方法的最佳方式),一个问题突然出现在我的脑海中:
您如何设法实现受保护的方法,即子类可见的私有方法?
假设我有一个 MySuperClass,它的 Category 包含它的所有私有方法,并且我想实现一个 MySubclass 覆盖或调用超级 MySuperClass 私有方法之一。这可能吗(使用类别方法来实现私有方法)?
看一下这段代码,在底部有覆盖的方法。
希望有人已经弄清楚了。
干杯!
python - super() 失败并出现错误:当父级不从对象继承时,TypeError "argument 1 must be type, not classobj"
我得到一些我无法弄清楚的错误。任何线索我的示例代码有什么问题?
我从“超级”内置方法的帮助中获得了示例测试代码。
这是错误:
仅供参考,这是 python 本身的帮助(超级):
java - 如何在单个对象上接受泛型参数的超类型?
是否可以只接受类的泛型类型的超类型?
我正在寻找的是这样的:
我真的不再需要它了(一开始它可能并不是那么有用),但我很好奇这是否可能,如果没有,为什么。
python - 将 super 与类方法一起使用
我正在尝试学习 Python 中的 super() 函数。
我以为我已经掌握了它,直到我遇到这个例子(2.6)并发现自己卡住了。
当我在示例之前阅读此行时,这不是我所期望的:
如果我们使用类方法,我们没有实例可以调用 super 。对我们来说幸运的是, super 甚至可以使用类型作为第二个参数。--- 类型可以直接传给super,如下图。
这正是 Python 告诉我的,通过说应该用 B 的实例调用 do_something() 是不可能的。
python - 在嵌套类中使用 super()
想象一下:
这会产生一个错误:
我试过A.B
了,但它说A
没有定义。
更新:
我发现了问题。
我上过这样的课:
在该范围内,尚未定义 A。