任何人都可以告诉我我需要做些什么来解决“名字'自我'未定义”错误我正在下面确定的线上?:
class FulfillWhseOrderAction(object):
def __init__(self, name):
self._action_name = name
self._as = actionlib.SimpleActionServer(self._action_name, pkg_commands.msg.FulfillWhseOrderAction, execute_cb=self.execute_cb)
self._as.start()
# *** ERROR HAPPENING HERE: ***
rospy.loginfo('%s: Executing warehouse order' % self._action_name)
if __name__ == '__main__':
rospy.init_node('node_ReceiveWhseOrder')
FulfillWhseOrderAction(rospy.get_name())
rospy.spin()
答案 0 :(得分:0)
self
是发送到__init__
函数的变量(称为对象)。所以你无法从函数外部访问它。将错误发生线缩进到函数内部。
class FulfillWhseOrderAction(object):
def __init__(self, name):
self._action_name = name
self._as = actionlib.SimpleActionServer(self._action_name, pkg_commands.msg.FulfillWhseOrderAction, execute_cb=self.execute_cb)
self._as.start()
# *** ERROR HAPPENING HERE: ***
rospy.loginfo('%s: Executing warehouse order' % self._action_name)
if __name__ == '__main__':
rospy.init_node('node_ReceiveWhseOrder')
FulfillWhseOrderAction(rospy.get_name())
rospy.spin()
这样可以解决问题