Python hasattr()函数

版本

E:\Projects\testTool>python --version
Python 3.6.2

定义

先看一下官网是如何定义的:
hasattr(object, name)**
The arguments are an object and a string. The result is True if the string is the name of the object's attributes, False if not. (This is implemented by calling getattr(object, name)) and seeing whether it raises an AttributeError or not)
大致翻译一下:
参数是一个对象和一个字符串,如果字符串是对象的属性值,函数返回True,反之返回False.(这是通过调用getattr(object, name)函数,并判断是否抛出AttributeError错误实现的)。
总结一下:
hasattr()函数用于判断对象是否包含对应的属性。

1.判断是否包含变量

定义一个类,在其中添加变量

>>> class clsTest():
...     value = 5

判断clsTest()中是否包含value的值

>>> hasattr(clsTest(), 'value')
True

2.判断是否包含函数

在刚才定义好的类中添加一个函数

>>> class clsTest():
...      value = 5
...      def func(self):
...         return 1 + 2

判断clsTest()中是否包含函数的值:

>>> hasattr(clsTest(), 'func')
True

3.判断是否包含类自带属性

使用dir()查看clsTest类中有哪些属性

>>> dir(clsTest)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'func', 'value']

试着查看是否包含__class__属性的值:

>>> hasattr(clsTest(), '__class__')
True
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容