當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python hasattr()用法及代碼示例


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()鏈接來避免輸入一個相關屬性(如果不存在其他屬性)。



相關用法


注:本文由純淨天空篩選整理自manjeet_04大神的英文原創作品 Python | hasattr() method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。