问题标签 [single-dispatch]
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.
c# - C# 是单调度语言还是多调度语言?
我试图准确地理解单次和多次调度是什么。
我刚读到这个:
http ://en.wikipedia.org/wiki/Multiple_dispatch
从这个定义来看,在我看来,C# 和 VB.Net 是多调度的,即使在编译时选择调用哪个重载也是如此。
我在这里是正确的,还是我错过了什么?谢谢!
c# - 什么是 - 单次和多次调度(与 .NET 相关)?
是否与重载相同,如果不是,请您提供每个 C# 中的示例
我已经阅读了对 SO 中提出的类似问题的回复......我不明白发布给它的回复。
类似的问题在这里问
编辑:在 C# 4.0 中使用新的“动态”关键字......这会使语言“多调度”启用吗?
python - 如何将 functools.singledispatch 与实例方法一起使用?
Python 3.4添加了使用静态方法定义函数重载的能力。这基本上是文档中的示例:
在最纯粹的形式中,singledispatch
实现依赖于第一个参数来识别类型,因此很难将此功能扩展到实例方法。
是否有人对如何使用(或 jerry-rig)此功能以使其与实例方法一起使用有任何建议?
python - 取消注册单次派送?
有没有办法为泛型“注销”已注册的函数?
例如:
c++ - 多态性和切片与引用
我没有完全理解 C++ 中的对象切片。在下面的示例代码中,两个对象似乎接受了相同的处理,但多态性仅适用于其中一个。
我正在使用引用,其中一个对象似乎没有被切片。我相信在 launch_ship 函数调用期间一定会发生一些事情,但我不知道到底出了什么问题。
这是示例代码。
输出:不想操作那艘低矮的飞船!
oop - 如何在 julia 中创建一个“单一调度、面向对象的类”,其行为类似于具有公共/私有字段和方法的标准 Java 类
我在一本书中读到“你不能在 julia 中使用单一调度风格的方法创建传统的‘类’,比如obj.myfunc()
……我认为这听起来更像是一个挑战而不是事实。
因此,这是我的JavaClass
类型,带有公共/私有字段和方法,只是为了在 Julia 中出现这样丑陋的东西所带来的震惊和恐怖因素,毕竟开发人员已经竭尽全力避免它:
示例使用:
本质上,构造函数变成了一个闭包,这就是创建“私有”字段和方法/重载的方式。有什么想法吗?(除了“OMG 为什么???你为什么要这样做??”)
还有其他方法吗?
你能想象到什么情况下这可能会严重失败?
python - lru_cache 干扰由 single_dispatch 完成的类型检查
我有一个带有三个注册函数的方法调度装饰器。一个发送到int
,效果很好。在自定义类型上调度的第二个也可以正常工作。第三种也是自定义类型,只不过Class是用lru_cache
装饰器包裹的。
(为了让事情更复杂一点,这个类是通过另一个类的方法上的 methoddispatch 以一种迂回的方式实例化的__call__
。)
在 Pitch 类中:
(还有很多事情要做,但这是不起作用的部分。)
基本上 - 如果我有 lru_cache,并将 QualifiedInterval 传递给函数,它不会调度并引发 NotImplementedError。如果我注释掉缓存装饰器,它就可以工作。REPL 的手动类型检查显示相同的类型(“QualifiedInterval”)。我尝试以几种不同的方式调用创建 QualifiedInterval 的命令,并尝试将其分配给变量。还是不行。我尝试在增强函数中进行显式类型检查。如果启用了缓存,类型检查也会失败。
python-3.x - 按值方法进行单次调度…
我正在从串行端口读取一些二进制数据。每个数据包可以包含由特定字节序列标识的宽数组(几十个左右)消息。为简单起见,让我们假设只有一个再见,以便0x01
对应于第一条消息,依此类推。我希望能够调用一个process
方法来处理每条消息。我可以有一个漫长而乏味的 if 循环,但这会很可怕。Asingledispatch
似乎是一个更好的选择,但每条消息的类似乎 OO 已经完成,并且返回到用于创建这些的巨大 if 循环。
因此,我需要按处理方法的价值进行一次分派bytearray
。
像这样的东西:
我很清楚Łukasz Langa 的博客文章,但他的按值分派的实现Enum
用作基类。我真正的Ook
类继承自一个抽象类(所以我可以有一个模拟器而不是真正的硬件)并将它与Enum
raises混合TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its base
......
python - Singledispatch 装饰器不像宣传的那样工作
我正在测试 python 的singledispatch
:https ://docs.python.org/3/library/functools.html?highlight=singledispatch#functools.singledispatch
根据文件,A 块应该和 B 块一样工作。但是,您可以在输出中看到只有 Block B 按预期工作。
这里有什么问题?谢谢。
输出:
python - 如何根据传递给函数的数据类型调度 Python 2 函数?
我想根据传递给“调度”函数(例如 using )的参数的数据类型来调度 Python 函数(例如使用dict 方法isinstance()
)。是否有实施替代方案?最简单的方法是什么?