版本
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