问题标签 [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 投票
3 回答
911 浏览

python - Python超级绕过MRO

我有一个继承的类并覆盖了一个也继承自基类的方法。但问题是中间方法创建了一个异常,我想通过调用第一个声明的方法来绕过它。有没有办法指定忽略第二次呼叫的mro ?

一个例子可能是:

非常感谢

PD:类似 BaseB(Base, BaseA) 类的东西可以工作吗?

0 投票
1 回答
154 浏览

python - 如何连接存储在 Python 中的继承链中的对象?

我正在实现一个用户界面。许多对象向用户界面公开各种属性。它们每个都有一个对象“ExposedProperties”,其中包含一个公开属性列表(及其类型、应如何显示、应如何验证输入等)。该 ExposedProperties 对象为每个类计算一次。

我想得到一个对象的所有公开属性的串联。一种方法是让每个对象将其“ExposedProperties”向上传递到继承链中,__init__并让每个超类将其与自己的 ExposedProperties 连接起来。基类将在对象上设置串联的 ExposedProperties 。

另一种方法是等到从对象请求所有公开的属性。然后,扫描for属性中的每个类的基类方法在那时将它们连接起来mroexposed_properties

在 Python 中连接存储在继承链中的这些对象的最 Pythonic 方式是什么?

0 投票
2 回答
169 浏览

python - 在多重继承的情况下,超级方法在python中如何工作?

超级方法如何在 python 中实际工作?

在给定的代码中:

test在 D 上调用时,它输出B->C而不是B->A(我期望的)。

B 内部的 super 如何引用 C 的实例?

0 投票
1 回答
272 浏览

python - 如何在 Python 中检查派生哪些类方法?

我有两节课:

如何检查 Python 中派生的类方法?

例如:

0 投票
1 回答
708 浏览

python - 有没有办法改变 Python 类中的 __mro__ ?

有什么方法可以替换__mro__Python 为类创建的默认属性?我想要一个由我制作的不同的解决方案。现在,当我尝试分配某些东西时,__mro__我得到一个“只读属性”异常。

0 投票
2 回答
1102 浏览

python - 如何按继承深度对 Python 类列表进行排序?

如何在 Python 中对类列表进行排序,确保任何子类在列表中的任何父类之前?

我问是因为我想从类型列表中查看一个对象属于什么类型,但如果它属于多个,则找到最具体的类型。

0 投票
2 回答
78 浏览

python - 没有超类属性的类属性

我有一个继承层次结构,其中一些类有一个名为“pickled”的类属性。我想知道A.pickled它是否存在,或者如果不存在则 None ——即使 A 派生自许多类,包括例如 B 并且B.pickled存在(或不存在)。

现在我的解决方案抓取A__mro__. 如果可能的话,我想要一个更清洁的解决方案。

0 投票
1 回答
1230 浏览

python - type.__getattribute__ 和 object.__getattribute__ 有什么区别?

鉴于:

好的,那要么调用 super 要么爬取 mro?

这是意料之中的。

什么是 getattribute 不做 getattr 做的?

什么?! type.__getattribute__调用 super 但object's 版本没有?

0 投票
1 回答
219 浏览

python - 理解python中方法解析排序的概念

当我调用 x=D() 为什么不调用 C 的init () 只有 B 的init () 被调用然后立即调用 D 的构造函数.. 不应该顺序是 B,A,C,D 其次,xf()显示错误参数传递的错误..

在此处输入图像描述

我究竟做错了什么??

0 投票
1 回答
291 浏览

python - 等效于 functools.singledispatch 的 super()

functools.singledispatch有助于定义单调度泛型方法。同时,还有super()调用方法或访问超类的属性。

有没有类似的东西super()可以用singledispatch?我尝试了以下方法,但结果super(Derived, value)只是不是实例Base,所以它没有按我预期的那样工作: