为了账号安全,请及时绑定邮箱和手机立即绑定

Python 陷阱例程

Python 陷阱例程

慕容森 2021-06-11 14:38:39
好吧,我以编程ABB 工业机器人为生,我们使用的编程语言称为Rapid。我可以在 Rapid 中做的一件很酷的事情叫做陷阱程序。它就像一个 while 循环,但不是在检查条件之前循环遍历整个循环,它会在等待的事件发生时立即中断。我想它类似于 javascript 中的事件侦听器。就好像运行在普通程序的后台一样。我想在 python 中做到这一点。我几乎没有接受过正规的 CS 教育,所以我不确定这个概念是什么。对不起,如果它有点含糊,我不确定如何以清晰的方式询问它。
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

像大多数语言一样,Python 也使用处理函数来处理系统信号。有关更多详细信息,请查看讨论接收和发送信号的信号章节,例如此处的示例。


简而言之,您可以将一个函数绑定到一个或多个信号:


>>> import signal

>>> import sys

>>> import time

>>> 

>>> # Here we define a function that we want to get called.

>>> def received_ctrl_c(signum, stack):

...     print("Received Ctrl-C")

...     sys.exit(0)

... 

>>> # Bind the function to the standard system Ctrl-C signal.

>>> handler = signal.signal(signal.SIGINT, received_ctrl_c)

>>> handler

<built-in function default_int_handler>

>>> 

>>> # Now let’s loop forever, and break out only by pressing Ctrl-C, i.e. sending the SIGINT signal to the Python process.

>>> while True:

...     print("Waiting…")

...     time.sleep(5)

... 

Waiting…

Waiting…

Waiting…

^CReceived Ctrl-C

在您的特定情况下,找出机器人向您的 Python 进程(或任何侦听信号的进程)发送哪些信号,然后如上所示对它们采取行动。


查看完整回答
反对 回复 2021-06-15
  • 1 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信