В коде есть класс, у которого есть функция с именем 'goal_callback'. В функции переменные определяются с использованием префикса .init, а другие определяются без префикса. Я знаю, что сам. Префикс используется для того, чтобы сделать переменную «переменной класса», чтобы она была доступна для каждой функции в классе. Так что в коде у меня есть только одна функция, имеет ли это значение, если мы определяем переменные с помощью self. префикс или нет. В чем именно будет разница между переменной _pub_takeoff и переменной takeoff_or_land?
#! /usr/bin/env python
class CustomActionMsgClass(object):
def __init__(self):
self._as = actionlib.SimpleActionServer("action_custom_msg_as", CustomActionMsgAction,
self.goal_callback, False)
def goal_callback(self, goal):
success = True
r = rospy.Rate(1)
self._pub_takeoff = rospy.Publisher('/drone/takeoff', Empty, queue_size=1)
self._takeoff_msg = Empty()
self._land_msg = Empty()
# Get the goal word: UP or DOWN
takeoff_or_land = goal.goal #goal has attribute named 'goal'.
if __name__ == '__main__':
rospy.init_node('action_custom_msg')
CustomActionMsgClass()
rospy.spin()