hasattr()是Python中的内置实用程序函数,已在许多day-to-day编程应用程序中使用。
它的主要任务是检查对象是否具有给定的命名属性,如果存在则返回true,否则返回false。
语法:hasattr(obj,key)
参数:
obj:必须检查其属性的对象。
key:需要检查的属性。
返回:如果属性存在,则返回True,否则返回False。
代码1:演示hasattr()的工作
# Python code to demonstrate
# working of hasattr()
# declaring class
class GfG:
name = "GeeksforGeeks"
age = 24
# initializing object
obj = GfG()
# using hasattr() to check name
print ("Does name exist ? " + str(hasattr(obj, 'name')))
# using hasattr() to check motto
print ("Does motto exist ? " + str(hasattr(obj, 'motto')))
输出:
Does name exist ? True Does motto exist ? False
代码#2:性能分析
# Python code to demonstrate
# performance analysis of hasattr()
import time
# declaring class
class GfG:
name = "GeeksforGeeks"
age = 24
# initializing object
obj = GfG()
# use of hasattr to check motto
start_hasattr = time.time()
if(hasattr(obj, 'motto')):
print ("Motto is there")
else :
print ("No Motto")
print ("Time to execute hasattr:" + str(time.time() - start_hasattr))
# use of try/except to check motto
start_try = time.time()
try :
print (obj.motto)
print ("Motto is there")
except AttributeError:
print ("No Motto")
print ("Time to execute try:" + str(time.time() - start_try))
输出:
No Motto Time to execute hasattr:5.245208740234375e-06 No Motto Time to execute try:2.6226043701171875e-06
结果:常规的try /except比hasattr()花费的时间更少,但是对于代码的可读性而言,hasattr()始终是一个更好的选择。
应用范围:此函数可用于检查按键,以免在访问缺少的按键时产生不必要的错误。有时使用hasattr()链接来避免输入一个相关属性(如果不存在其他属性)。
相关用法
- Python next()用法及代码示例
- Python os.dup()用法及代码示例
- Python set()用法及代码示例
- Python os.scandir()用法及代码示例
- Python os.waitid()用法及代码示例
- Python os.WIFEXITED()用法及代码示例
- Python sympy.rf()用法及代码示例
- Python PIL getpalette()用法及代码示例
- Python sys.getrecursionlimit()用法及代码示例
- Python PIL eval()用法及代码示例
- Python os.fdatasync()用法及代码示例
- Python os.sync()用法及代码示例
- Python sympy.nT()用法及代码示例
- Python sympy.ff()用法及代码示例
注:本文由纯净天空筛选整理自manjeet_04大神的英文原创作品 Python | hasattr() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。