- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是一个关于 very popular super( )
question 的附加问题.问题基本上是“我为什么要使用 super( )
”,答案是“因为您不必引用父类,这很好。”
我的问题是……为什么这是一件好事?无论“显式优于隐式?”发生了什么?假设我正在阅读其他一些开发人员的代码并且我看到:
class Foo(Bar, Baz):
def my_method(self):
super(Foo, self).who_knows( ) #nobody knows!
我现在必须深入了解 Bar
和 Baz
以及 它们所有父类的文档,一直向上查找who_knows( )
从哪里被调用以及它做了什么。我还需要对方法解析顺序有一个完美的理解,以便知道 哪个 who_knows( )
实际被调用了。
现在让我们看一下没有 super( )
的相同代码:
class Foo(Bar, Baz):
def my_method(self):
Baz.who_knows(self) #ah, Baz knows
更加清晰,无需猜测或理解所需的 MRO。
我提出这个问题并不是为了展开争论或哲学讨论。我只是希望有人可以向我展示一些非常清楚的示例,其中 super( )
的隐式性质实际上是可取的,因为老实说我没有看到它。
最佳答案
对于这种情况,super(Foo, self).who_knows()
根本不是一件好事。我会做 self.who_knows()
。
super()
通常用于覆盖父类的同名方法。
关于python - 为什么 super() 的隐式性质是一个令人满意的特性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21211344/
Eclipse 坚持在我的项目中启用 JSF 方面。我可以很容易地禁用它,但是当我通过 Eclipse 运行 Maven -> Update Project 时,facet(以及关联的 WEB-INF
我在 Linux 下从 eclipse 导出了一个 SWT 项目,并尝试在 Windows 下导入它。到目前为止,一切都工作正常,除了我似乎失去了该项目的“SWT 性质”。使用 SWT gui 运行项
我有以下项目结构: root-gradle (build.gradle) 项目组 1(无构建文件) project1 (build.gradle) project2 (build.gradle) ..
我正在K8s集群上试验Spark2.3。想知道检查点如何工作?它存储在哪里?如果主驱动程序死了,那么现有处理会怎样? 在从卡夫卡消费时,补偿如何保持?我试图在线查找,但找不到这些问题的任何答案。我们的
我有一个 springboot 项目,它被组织为多个模块。我正在使用 Eclipse 2019-06(版本 4.12)和 jdk 1.8 update 131 和 apache maven 3.3.9
我是一名优秀的程序员,十分优秀!