python的getattr和setattr_getattr函数和setattr函数

python的getattr和setattr_getattr函数和setattr函数python 内置的两个看起来很简单 一般也不怎么用得上的函数 getattr 函数和 setattr 函数 getattr 函数用于获取对象的某个属性的值 setattr 函数用于设置对象的某个属性值 getattr 函数获取对象的某个属性值 如果属性不存在 而且又没有提供 default 值 抛出 AttributeErr 以上代码首先用 dir 查看了 10 这个 int 对象的所有属性 然后获取 bit length 属

python内置的两个看起来很简单,一般也不怎么用得上的函数,getattr函数和setattr函数。getattr函数用于获取对象的某个属性的值,setattr函数用于设置对象的某个属性值。

getattr函数

获取对象的某个属性值,如果属性不存在,而且又没有提供default值,抛出AttributeError。

以上代码首先用dir查看了10这个int对象的所有属性,然后获取bit_length属性,发现是一个函数,获取real属性,就是10。再获取一个浮点数10.12345的real属性,再获取一个不存在的kkkk属性,不过提供了默认值abcde,返回abcde,因为kkkk属性不存在。如果不提供默认值,获取不存在的kkkk属性值,抛出AttributeError异常。

python还有一个内置函数hasattr,就是通过getattr来实现的, This is implemented by calling getattr(object, name) and seeing whether it raises an AttributeError or not.)

setattr函数

顾名思义,就是设置对象的某个属性值。比较有趣的一个细节是,被设置的属性,可以是对象还不存在的属性。不过只能对自定义的对象进行这种操作,内置对象不可以。

>>> class person():

… def __init__(self, age):

… self.age = age

>>> p = person(40)

>>> p.age

40

>>> setattr(p, ‘gender’, ‘male’)

>>> p.gender

‘male’

>>> setattr(p, ‘age’, 100)

>>> p.age

100

person这个class,一开始只有age属性,后通过setattr函数,增加了gender属性。我们其实本来就可以对对象任意增加不存在的属性值,只是如果使用setattr函数,带来一个好处,即属性的名称也可以是动态的,比如属性的名称通过某个变量来获取。

— EOF —

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201824.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午8:31
下一篇 2026年3月20日 上午8:32


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号