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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。