我正在使用框架来检索无人机参数的值。我想使用的命令之一是vehicle.parameters 当我使用
vehicle.parameters['GPS_TO_INJECT']
效果很好,打印出127.0。现在我想将它包含在一个函数中,所以如果我使用:
def change_value():
a = GPS_TO_INJECT
vehicle.parameters['a']
它不起作用,打印我:
a = GPS_INJECT_TO NameError:未定义全局名称“GPS_INJECT_TO”
它出了什么问题?
答案 0 :(得分:3)
首先,使用字符串a
定义GPS_TO_INJECT
,将第二个类型变量a
定义为vehicle.parameters
的键。
def change_value():
a = 'GPS_TO_INJECT'
vehicle.parameters[a]
正如您在第一个示例中所做的那样,您已将GPS_TO_INJECT
作为字符串传递给vehicle.parameters
,您在第二部分代码中也需要这样做。
答案 1 :(得分:0)
a是变量,而' a'是一个字符串。因此,你传递的不是变量。
此外,GPS_INJECT_TO未定义。它被认为是一个全局常量而不是字符串。
答案 2 :(得分:0)
以下列方式将值 GPS_TO_INJECT 分配给变量 a :
a = "GPS_TO_INJECT"
完成后,尝试访问vehicle.parameters值为:
print vehicle.parameters[a]
对于Python 3,写道:
print(vehicle.parameters[a])