如何在python中使用## C功能

时间:2014-08-07 18:54:12

标签: python preprocessor protocol-buffers

在C中,如果你有一个变量名,并且你想在protobuf中访问一个变量

# define get_value(variable, variable_name, store){   \
    store = variable->name_variable_name    \
 }  

python中是否有类似的功能?

我能想到的另一种选择就是做一个大的if else案例

if protobuf_message.type = "LISTENER1":
    message = protobuf_message.LISTENER1
elif protobuf_message.listener2 = "LISTENER2":
    message = protobuf_message.LISTENER2

我想做这样的事情

listener_type = protobuf_message.type
message = protobuf_message.listener_type

任何建议都将不胜感激

1 个答案:

答案 0 :(得分:2)

您正在寻找getattr功能。

listener_type = protobuf_message.type
message = getattr(protobuf_message, listener_type)