问题标签 [method-resolution-order]

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 回答
37 浏览

python - 由于从 Windows 转换到 Linux 导致的 dask mro 错误

我已经使用daskdelayedcompute方法构建了 Python 2.7 代码。

这是我的代码的一个小例子:

出于某种原因,此代码在 windows 上的 anaconda 设置上完美运行,但在 Linux 上失败。

我得到的错误是:

...

将软件包 ( dask) 更新到最新版本并没有帮助。

关于如何修复它的任何建议?

谢谢

0 投票
2 回答
475 浏览

raku - Perl 6 对象如何找到可能在父类或角色中的多方法?

考虑这个例子,其中一个子类有一个没有签名的 multi 方法和一个带有 slurpy 参数的方法:

方法查找的结构如何?我正在寻找更多解释它的方法,特别是不抱怨它。

Bar例如,有一个对'sdo-it的调用1。一些理性的人可能会认为它首先会寻找匹配的签名,Bar并且 slurpy 永远不会让任何东西通过它。然而,调用在继承链中找到了正确的 multi。

是否Bar已经知道所有签名?它是搜索还是在编写时所有这些东西都已经解决了?

而且,有没有办法在运行时找出哪个类提供了该方法?也许有一些关于如何的电话?当我有一个我错误地指定并且正在其他地方处理的 multi 时,这将是一个方便的调试工具。

0 投票
1 回答
799 浏览

django - TypeError:无法为基础 Mixin、对象创建一致的 MRO

我正在尝试向 django QuerySet 添加一个 explain() 方法,但得到 MRO 错误:

我添加的 mixin 和代码:

(mixin 的学分:https ://stackoverflow.com/a/39168237/3385534 )

0 投票
1 回答
421 浏览

python - Python 在运行时将类添加到 __mro__

我已经看到允许在运行时添加基类的问题,但我有一个更具体的问题,试图通过使用元类在更深的层次结构中添加基类。

我希望能够Special在运行时在元类__call__函数中将该类添加到我的层次结构中。但这将覆盖Concrete基类,基本上将其删除。我不知道如何正确插入这个底座。Specific此外,我在尝试创建新类时丢失了构造函数。我真的只想__mro__在没有副作用的情况下插入一个类。可能的?

0 投票
1 回答
898 浏览

python-2.x - python2中如何知道MRO

在 python3 中,我们可以使用'__mro__'下面的方法来获取方法解析顺序:

python2是否有另一种方法?我试图找到一个但失败了。

0 投票
1 回答
60 浏览

python - python的多重继承

Python 的 super() 如何与多重继承一起工作? 一个答案解释了为什么,对于这个例子:

答案是:

根据解释,这是因为:

内部调用__init__of ,因为这是 MRO 所规定的!First super(First, self).__init__()__init__Second

他什么意思?为什么调用 First super__init__会调用__init__Second?我认为First与Second无关?

据说:“因为这是 MRO 规定的”,我阅读了https://www.python.org/download/releases/2.3/mro/ 但仍然没有任何线索。

谁能解释一下?

0 投票
1 回答
88 浏览

python - 为什么元类定义改变了经典类的mro?

根据方法解析顺序

经典类使用简单的 MRO 方案:查找方法时,使用简单的深度优先从左到右方案搜索基类。

这可以在 Python 2.6 中验证

但是,如果我定义了一个元类,我会在 Python 2.7.12 中得到不同的结果:

0 投票
1 回答
84 浏览

python - pyqt 类的方法解析顺序是什么?

我最近被问到 pyqt 继承中的一个问题,问题是:假设我有一个带有方法的类 AcloseEvent(event)和一个继承 A 和 QMainWindow 的类 B(因此有一个closeEvent(event)方法)。解决顺序是closeEvent什么?考虑到 python 文档,这将取决于继承顺序。但是下面的例子表明情况并非如此......有人可以帮忙吗?我在带有 PyQt5 的 Windows 上使用 Python3.6.2。

0 投票
2 回答
1939 浏览

python-3.x - 此 Python 代码中多重继承的最佳实践

我对某些 Python 类中的多继承设计有一些疑问。

问题是我想扩展 ttk 按钮。这是我最初的建议(我省略了缩短方法中的所有源代码,除了init方法):

但后来我意识到我还想要这个 ImgButton 的子类,如下所示:

继承权在他看来很自然。当我注意到 ImgButton 中的大多数方法都可以用于我将来可能创建的任何 Widget 时,问题就来了。

所以我正在考虑制作一个:

用于放入所有有助于小部件颜色的方法,然后我需要 ImgButton 从 MyWidget 和 ttk.Button 继承:

编辑:另外我希望我的对象是可记录的,所以我做了这个类:

所以现在:

我来自 Java,我不知道多重继承的最佳实践。我不知道我应该如何以最佳顺序对父母进行排序,或者对设计这种多重继承有用的任何其他事情。

我搜索了这个主题,发现了很多解释 MRO 的资源,但没有关于如何正确设计多重继承的内容。我不知道我的设计是不是做错了,但我觉得这感觉很自然。

我将不胜感激一些建议,以及有关此主题的一些链接或资源。

非常感谢你。

0 投票
1 回答
36 浏览

python - 我无法在 python2.X 的多重继承中初始化不同类的数据成员

我有一个这样的代码

我想通过子类c初始化不同类(a和b)的数据成员,但是super()只访问a类,但不知何故我可以像cb.name=nameinit()一样初始化b类数据成员,然后我可以传递对象中的参数。我的问题是,如果我不这样做,我就不能在 c 的对象中传递参数。帮我!