Python 2.7 rospy订阅服务器必须在函数中吗?

Python 2.7 rospy订阅服务器必须在函数中吗?,python-2.7,rospy,Python 2.7,Rospy,我看到的大多数程序和示例都在函数中启动rospy订阅服务器,例如 def listener(): rospy.Subscriber('/heylookitsanoutput',Image,imagecallback) rospy.spin() 但有必要将其保持在一个函数内吗?它能像MQTT一样工作吗?在MQTT中,您在函数开始时抛出订阅者,在看到订阅主题后执行回调 我可以理解这样做的必要性,因为您可能需要rospy.spin()来等待您正在寻找的输入,但是如果回调可以作为可中断

我看到的大多数程序和示例都在函数中启动rospy订阅服务器,例如

def listener():
    rospy.Subscriber('/heylookitsanoutput',Image,imagecallback)
    rospy.spin()
但有必要将其保持在一个函数内吗?它能像MQTT一样工作吗?在MQTT中,您在函数开始时抛出订阅者,在看到订阅主题后执行回调

我可以理解这样做的必要性,因为您可能需要rospy.spin()来等待您正在寻找的输入,但是如果回调可以作为可中断事件触发,那么对于我的场景来说可能更好(当新图像出现时更新图像窗口)


谢谢

您也可以在函数外部启动rospy订阅服务器, i、 e.在
中,如果uuuu name_uuuuu==“uuuu main_uuuuuuu”:
块。 他的行为将完全相同,在看到订阅主题的帖子时执行回调

我认为将这些命令嵌入到函数中的要点是,可以很容易地将它们导入到其他模块中,并获得更好的代码组织