【问题标题】:Why aren't signals simply called events?为什么信号不简单地称为事件?
【发布时间】:2010-10-12 02:38:32
【问题描述】:

据我所知,在 Python 和 Django 中,信号只是委托事件。有什么可以在功能上将它们与 C#、Java、ActionScript 等中的典型事件概念区分开来吗?

【问题讨论】:

    标签: python signals django-signals


    【解决方案1】:

    信号通常与操作系统设施相关联,而事件通常是应用程序定义的。在某些技术堆栈中,操作系统级别的东西可能隐藏得足够好,以至于 API 没有区别,但在其他技术堆栈中可能没有。

    【讨论】:

      【解决方案2】:

      您不妨问“为什么不简单地将事件称为信号?”。术语不同。

      【讨论】:

      • 此外,我认为“信号”具有优先权。
      • 这不是一个真正的术语问题,我特别问是否有某种功能原因导致名称不同。
      • 这不是一个术语问题吗? “为什么这些相同的东西不具有相同的名称?”
      • 如果你看的是问题的正文,而不是标题,那很清楚,我问的是功能上是否有区别。
      【解决方案3】:

      Afaik Qt 有第一个信号/插槽实现。 Qt's docs 解释比喻:“当特定事件发生时发出信号”。区别是如此微妙,以至于术语已经模糊。

      【讨论】:

        【解决方案4】:

        实际上,“信号”的存在时间比事件要长。在最早的用法中,信号是进程获取事件发生通知的一种异步方式。由于 Unix 比 Django 早得多(而且由于 Django 的许多工作都来自 pydispatcher,原来的东西就是在那里完成的),所以这个名字一直存在。

        事件确实是信号,你可能会说!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-30
          • 2018-01-28
          • 2017-03-16
          • 2014-12-22
          • 1970-01-01
          相关资源
          最近更新 更多