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

s.name就可以给出对象s的name属性了,为啥还要用getattr(s,name)这么麻烦的方法?

>>> getattr(p, 'name') # 获取name属性
'Alice'
>>> setattr(p, 'name', 'Adam') # 设置新的name属性
>>> s.name
'Adam'


既然s.name就可以给出对象s的name属性了,为啥还要用getattr(s,name)这么麻烦的方法?

(就要多打很多字,还要特意记住这个方法)

正在回答

4 回答

比如'name'等均是字符串输入而不是参数原类型,有些场景不一定知道有什么参数

0 回复 有任何疑惑可以回复我~

可以根据字符串来取值,在动态增删属性上非常有用

0 回复 有任何疑惑可以回复我~

用于循环取值用,方便快捷

0 回复 有任何疑惑可以回复我~
#1

新大宏

如下代码: class Person(object): def __init__(self, name, gender, **kw): self.name = name self.gender = gender for k, v in kw.items(): setattr(self, k, v) for k, v in kw.items(): print(getattr(self,k,v))
2020-10-27 回复 有任何疑惑可以回复我~

表示关注


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

s.name就可以给出对象s的name属性了,为啥还要用getattr(s,name)这么麻烦的方法?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信