Python中的getattr()函数 (一)

本文探讨了Python内置函数getattr在处理不同传感器温度转换任务中的应用,通过字符串映射到函数引用,实现了模块化和灵活性的增强。以tempConvert模块为例,展示了如何轻松扩展功能,而无需修改原始代码,相比C/C++的实现更为简洁高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python的getattr内置函数简直太强大了,它提供了从函数名字符串到函数引用的映射,实现机制为字符串和函数的松耦合。这有什么好处呢?

例如有一个功能需求是温度转换,即通过得到的传感器类型调用相应的温度转换函数,若是用python的话那就相当容易和简洁了,例如tempConvert模块定义了光纤传感器和无线传感器温度转换函数为convert_fiber和convert_wireless。

import tempConvert
def convert(primalData, sensortype="fiber"):
processFunc = getattr(tempConvert, "convert_%s" % sensortype)
return processFunc(primalData)

这样每添加一种类型的传感器,只要在temConvert模块中定义一个相应的转换函数就行了。相较之下C/C++就麻烦许多了,无法从字符串获取到该函数指针/引用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值