为什么要使用内置的setattr()和getattr()?

为什么要使用内置的setattr()和getattr()?,第1张

为什么要使用内置的setattr()和getattr()?

因为您也可以使用动态变量:

somevar = 'foo'getattr(x, somevar)

您不能使用常规属性访问语法来做到这一点。

请注意,

getattr()
如果 缺少 属性,还需要返回一个可选的默认值:

>>> x = object()>>> getattr(x, 'foo')Traceback (most recent call last):  File "<stdin>", line 1, in <module>AttributeError: 'object' object has no attribute 'foo'>>> getattr(x, 'foo', 42)42

使用

getattr()
您可以从其他名称(而不是文字)中提取属性名称:

for attrname in dir(x):    print('x.{} = {!r}'.format(attrname, getattr(x, attrname))

或者您可以

setattr()
用来设置动态属性:

for i, value in enumerate(dynamic_values):    setattr(i, 'attribute{}'.format(i), value)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5645348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存