问题标签 [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.
python - Python中使用reduce和decorator的级联函数
我有一个名为的方法render
,它实际上是由一个子类实现的,并像这样调用:
我有一个 callables 列表[c1, c2, c3]
。我想在cascade_callables
方法中做这样的事情,应该是这样的:
所以本质上,我正在尝试render
像这样工作而不修改实际的实现:
我尝试了这样的事情来作为我可以使用的装饰器reduce
:
但我得到了这个:
使用我在这个问题中尝试解释的范式在 Python 2.7 中解决这个问题的最佳方法是什么?
c# - params 参数和普通参数
调用哪个 foo 方法?为什么?
python - TypeError:无法创建一致的方法解析顺序(MRO)
这是我计划用于我的游戏的代码,但它抱怨 MRO 错误:
python - 多重继承中的Python self和super
在PyCon 2015 上Raymond Hettinger 的演讲“超级考虑超级演讲super
”中,他解释了在多继承上下文中使用 Python 的优势。这是雷蒙德在演讲中使用的例子之一:
台下有人问雷蒙德,self.get_dough()
改用的区别super().get_dough()
。我不太了解 Raymond 的简短回答,但我编写了此示例的两个实现以查看差异。两种情况的输出相同:
如果您将课程顺序从 using 更改OrganicPizza(Pizza, OrganicDoughFactory)
为OrganicPizza(OrganicDoughFactory, Pizza)
using self.get_dough()
,您将得到以下结果:
Making pie with pure untreated wheat dough
但是,如果您使用super().get_dough()
这是输出:
Making pie with insecticide treated wheat dough
我理解super()
雷蒙德解释的行为。但是self
在多重继承场景中的预期行为是什么?
python - 我们应该在基类中“super()”吗?
在 Python 3 中,我使用来自继承类的 super ,如下所示:
在上面的代码片段中,Orange
类继承自Fruit
类。看看父类
我们是否需要从父类/基类调用 super 才能使 MRO 有效工作?
python - python:如何针对MRO从子类对象调用父类的函数
上面的代码将根据 MRO 打印 'inside b'。有没有办法使用 d 的对象从类 C 调用函数?
python - python - 如何从Python中的`super()`获取实例方法的下一个父类
我想知道从 super() 函数获得的实例的类型。我试过print(super())
了__print(type(super()))__
结果是
有了这些结果,我想知道如何super().__init__()
调用正确的构造函数。
python-3.x - 是否有令人信服的理由调用 type.mro() 而不是直接迭代 type.__mro__ ?
是否有令人信服的理由来调用type.mro()
而不是直接迭代type.__mro__
?访问速度实际上快了约 13 倍(36ns vs 488ns)
我在寻找缓存时偶然发现了它type.mro()
。这似乎是合法的,但它让我想知道:我可以依靠type.__mro__
,还是必须打电话type.mro()
?在什么情况下我可以摆脱前者?
更重要的是,必须发生哪些条件type.__mro__
才能无效?
例如,当定义/创建一个改变现有类的 mro 的新子类时,现有类是否会.__mro__
立即更新?每次创建新班级时都会发生这种情况吗?这使它成为类类型的一部分?哪一部分?..或者这type.mro()
是关于什么的?
当然,所有这些假设type.__mro__
实际上是一个缓存名称的元组,它们指向给定类型的 mro 中的对象。如果该假设不正确;那这是什么?(可能是描述符或其他东西..)为什么我可以/不能使用它?
编辑:如果它是一个描述符,那么我很想学习它的魔力,因为两者都是:type(type.__mro__) is tuple
和type(type(type).__mro__) is tuple
(即:可能不是描述符)
编辑:不确定这有多相关,但type('whatever').mro()
返回一个列表,而type('whatever').__mro__
返回一个元组。(不?)幸运的是,附加到该列表不会更改对相关类型(在本例中为 str)的__mro__
或后续调用。.mro()
谢谢您的帮助!
python - Python:如何确定属性 MRO
__mro__
我们可以通过访问其属性轻松确定对象的 mro 。
就我而言,我有一个非常复杂的层次结构,我试图解开它以避免我们正在经历的当前 mro 地狱。
我有一个很长的 mro 链,像这样:
为了这个问题,这被缩短了,但在这种情况下,它总结为19
类。
我目前有一个问题:我需要知道 python 正在从这些类中的哪个类中解析该as_view
方法。
我知道我可以按顺序检查这些,但我看不出我做错了什么,因为as_view
被调用的不是正确的。
对该方法的调用非常简单,我们有一个CompanyUserViewSet
Rest Framework 用于构建路由器的 url:
给定一个对象及其属性(或方法)之一,我如何从 python 解析的类中确定它?
python - Python 2.7 MRO 行为异常
所以我一直在对 Python 2.7 多重继承和 MRO 的美妙世界进行一些研究,并且在阅读时我一直在尝试不同的示例,我遇到了一些让我非常困惑的事情。
这样你就有了经典的钻石 MI 示例:
在我读过的所有 MRO 资源中,这个例子应该有一个 DBCA 的 MRO,所以初始化 D 应该打印“C”,但它会打印“A”。奇怪的是,当我将 A、B、C 或 D 的定义更改为类似它的子类时,int
它给了我打印“C”的预期行为
为什么类结构的 MRO 行为会根据基类是否为原始类型而有所不同?这是一个错误吗?