Python:调用名称存储在变量中的函数

时间:2015-03-27 12:43:52

标签: python raspberry-pi

我正在开发一个应用程序,检查一堆传感器的状态。

获得他们身份的方式非常简单:

sensor_name.get_status()

我想知道是否可以将所有传感器名称存储在字符串列表中,让for为我做的工作,而不是写几个调用来检查所有这些传感器。

非常像这样:

sensors_list = ['sensor_name_1', 'sensor_name_2', 'sensor_name_3']
for sensor in sensors_list:
    #call it :-)

我怎样才能完成这项工作?

2 个答案:

答案 0 :(得分:4)

如何将名称保留在列表中,而不是将名称保留在列表中?

sensors = [sensor_1, sensor_2, sensor3]
for sensor in sensors:
    sensor.get_status()

答案 1 :(得分:1)

使用locals(我会将sensor_name_1设置为min函数,以便它可以调用:

>>> sensor_name_1 = min  # just an example function
>>> locals()['sensor_name_1']([1,2,3])
1

对于您的具体示例,您可以这样做:

sensors_list = ['sensor_name_1', 'sensor_name_2', 'sensor_name_3']
for sensor in sensors
    locals()[sensor].get_status()