为了账号安全,请及时绑定邮箱和手机立即绑定

getattr()到底是什么?我如何使用它?

getattr()到底是什么?我如何使用它?

MYYA 2019-07-16 16:34:49
getattr()到底是什么?我如何使用它?我曾经是读到getattr()功能..问题是我仍然不能理解它的用法。我唯一了解的就是getattr()那是getattr(li, "pop")和打电话一样li.pop.我不明白当这本书提到如何使用它来获得函数的引用时,直到运行时才知道它的名称。也许这就是我在编程方面的一个菜鸟,总的来说。有人能说明一下这个问题吗?我什么时候怎么用这个?
查看完整描述

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

对我来说,getattr是最简单的解释方式:

它允许您根据字符串的内容调用方法,而不是键入方法名称。

例如,您不能这样做:

obj = MyObject()for x in ['foo', 'bar']:
    obj.x()

因为x不是“内置”的类型,而是“str”。但是,您可以这样做:

obj = MyObject()for x in ['foo', 'bar']:
    getattr(obj, x)()

它允许您根据输入动态地连接对象。我发现它在处理自定义对象和模块时很有用。


查看完整回答
反对 回复 2019-07-16
  • 3 回答
  • 0 关注
  • 1297 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信