python – 在getattr()函数上调用一个方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在getattr()函数上调用一个方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含878字,纯文字阅读大概需要2分钟。
内容图文
![python – 在getattr()函数上调用一个方法](/upload/InfoBanner/zyjiaocheng/727/5b49f1a4826d43a08c1e8c0d6b854174.jpg)
我使用python-metar来解码METAR数据.解析METAR字符串后返回的对象如下所示:
>>> dir(decoded)[-5:]
['wind_shift', 'wind_shift_time', 'wind_speed', 'wind_speed_peak', 'windshear']
这些属性有其他方法 – value(),unit()和string().
我使用getattr()内置函数来遍历所有这些:
>>> attributes = [..., 'wind_speed', 'wind_speed_peak', 'windshear']
>>> for attr in attributes:
>>> print(getattr(decoded, attr))
但是这样我得到了默认的字符串表示,这是一个带有值及其单位的字符串,比如10节,而我想得到的数值,我可以通过value()方法得到:
>>> decoded.wind_speed.value()
10.0
所以我无法想象如何使用getattr()并同时调用一个方法(在本例中为value()方法).
解决方法:
使用您的代码,getattr将返回到decode.wind_speed.如果要调用decode.wind_speed的值函数,则必须使用getattr返回的对象调用value().
print(getattr(decoded, attr).value())
要么
您可以使用另一个getattr来调用value方法.
print(getattr(getattr(decoded, attr)), "value")()
内容总结
以上是互联网集市为您收集整理的python – 在getattr()函数上调用一个方法全部内容,希望文章能够帮你解决python – 在getattr()函数上调用一个方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。