python内置函数getattr(),hasattr(),setattr(),delattr()【属性相关】
2017-11-15 11:37
453 查看
getattr(object,name [,default ] )
返回对象的指定属性的值。 名称必须是字符串。如果字符串是对象属性之一的名称,则结果是该属性的值。例如,相当于 。如果指定的属性不存在,则提供默认值,否则返回。
hasattr(object,name )
参数是一个对象和一个字符串。结果是True如果字符串是对象的属性之一的名称,False如果不是。(这是通过调用和查看是否引发异常来实现的。)
setattr(object,name,value )
这是对应的getattr()。参数是一个对象,一个字符串和一个任意值。该字符串可以命名现有的属性或新的属性。该函数将该值赋给该属性,只要该对象允许。例如,setattr(y, ‘foobar’, 123)相当于y.foobar = 123 。
delattr(object,name )
这是一个相对的setattr()。
参数是一个对象和一个字符串。该字符串必须是对象属性之一的名称。该函数删除指定的属性,只要该对象允许。例如,delattr(x, ‘foobar’)相当于del x.foobar。
返回对象的指定属性的值。 名称必须是字符串。如果字符串是对象属性之一的名称,则结果是该属性的值。例如,相当于 。如果指定的属性不存在,则提供默认值,否则返回。
In [1]: class Y(): ...: def __init__(self, name): ...: self.name = name ...: In [2]: y = Y('name') In [3]: y.name Out[3]: 'name' In [6]: getattr(y, 'name') #等同于y.name Out[6]: 'name' In [7]: getattr(y, 'x', '没有这个属性') Out[7]: '没有这个属性'
hasattr(object,name )
参数是一个对象和一个字符串。结果是True如果字符串是对象的属性之一的名称,False如果不是。(这是通过调用和查看是否引发异常来实现的。)
In [8]: hasattr(y, 'name') Out[8]: True In [9]: hasattr(y, 'x') Out[9]: False
setattr(object,name,value )
这是对应的getattr()。参数是一个对象,一个字符串和一个任意值。该字符串可以命名现有的属性或新的属性。该函数将该值赋给该属性,只要该对象允许。例如,setattr(y, ‘foobar’, 123)相当于y.foobar = 123 。
In [10]: setattr(y, 'foobar', 123) In [11]: y.foobar Out[11]: 123
delattr(object,name )
这是一个相对的setattr()。
参数是一个对象和一个字符串。该字符串必须是对象属性之一的名称。该函数删除指定的属性,只要该对象允许。例如,delattr(x, ‘foobar’)相当于del x.foobar。
In [12]: delattr(y, 'foobar') In [13]: y.foobar --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-13-562eeae798ca> in <module>() ----> 1 y.foobar AttributeError: 'Y' object has no attribute 'foobar'
相关文章推荐
- PYTHON getattr setattr hasattr delattr内置函数
- [转]Python的getattr(),setattr(),delattr(),hasattr()
- 怎么使用Python的getattr(),setattr(),delattr(),hasattr()
- python 内置函数isinstance(),hasattr(),getattr(),setattr()的介绍
- python 面向对象中一些常用内建函数【getattr(), setattr(). hasattr(). delattr()...】
- Python的getattr(),setattr(),delattr(),hasattr()
- Python的getattr(),setattr(),delattr(),hasattr()
- python 面向对象中一些常用内建函数【getattr(), setattr(). hasattr(). delattr()...】
- Python的getattr(),setattr(),delattr(),hasattr()及类内建__getattr__应用
- Python的getattr(),setattr(),delattr(),hasattr()
- Python的getattr(),setattr(),delattr(),hasattr()
- python: hasattr()、setattr()、getattr()、delattr() 内建函数
- Python的getattr(),setattr(),delattr(),hasattr()
- Python的getattr(),setattr(),delattr(),hasattr()
- Python标准库:内置函数hasattr() getattr() setattr() 函数使用方法详解
- Python的getattr(),setattr(),delattr(),hasattr()
- Python 反射机制之hasattr()、getattr()、setattr() 、delattr()函数
- Python的getattr(),setattr(),delattr(),hasattr()
- Python的getattr(),setattr(),delattr(),hasattr()
- 浅析Python中的getattr(),setattr(),delattr(),hasattr()