反应式编程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/boyun58/article/details/84983194

反应式编程是处理数据流和变化传播的编程范例。 这意味着,当数据流由一个组件发出时,更改将通过反应式编程库传播到其他组件。变化的传播将持续到最终的接收者。 事件驱动和反应式编程的区别在于,事件驱动式编程围绕事件展开,反应式编程围绕着数据展开。

  • ReactiveX或RX用于反应式编程
  • ReactiveX或者Raective Extension是反应式编程最着名的实现。 ReactiveX的工作取决于以下两个类

可观察的类
这个类是数据流或事件的来源,它打包传入的数据,以便数据可以从一个线程传递到另一个线程。 在某些观察者订阅它之前,它不会提供数据。

观察员类
该类使用observable发出的数据流。 可以有多个可观察的观察者,每个观察者将接收每个发射的数据项。 观察者可以通过订阅可观察到的三种类型的事件

  • on_next()事件 - 它意味着数据流中有一个元素。
  • on_completed()事件 - 它意味着排放已经结束,没有更多数据项到来。
  • on_error()事件 - 它也意味着排放的结束,但在可观察到抛出错误的情况下。。

用于反应式编程的PyFunctional库
PyFunctionalis是一个可用于响应式编程的Python库。 它使我们能够使用Python编程语言创建功能程序。 这很有用,因为它允许我们通过使用链式函数操作符来创建数据管道。

安装PyFunctional模块

  • pip install pyfunctional

以下示例使用PyFunctional模块及其seq类,它们充当可以迭代和操作的流对象。 在这个程序中,它使用将每个值加倍的lamda函数映射序列,然后过滤x大于4的值,最后将序列减少为所有剩余值的和。

from functional import seq

result = seq(1, 2, 3).map(lambda x: x * 2).filter(lambda x: x > 4).reduce(lambda x, y: x + y)

print("Result: {}".format(result))

猜你喜欢

转载自blog.csdn.net/boyun58/article/details/84983194
今日推荐