在 Python 中使用反射可以得到物件的所有屬性,這個機制被稱為反射(反過來讓物件告訴我們他是什麼),用於實現在運行時獲取未知物件的資訊。
以下列出了幾個內建方法,可以用來檢查或是存取物件的屬性。這些方法可以用於任意物件而不僅僅是例子中的Cat實例物件;
#coding:utf-8 from a import * cat = Cat('kitty') print cat.name cat.sayHi() #调用实例方法 print dir(cat) if hasattr(cat, 'name'): #检查实例是否有这个属性 setattr(cat, 'name', 'tiger') #same as: a.name = 'tiger' print getattr(cat, 'name') #same as: print a.name getattr(cat, 'sayHi')()
dir([obj]):
呼叫這個方法將會傳回包含obj大多數屬性名的清單(會有一些特殊的屬性不包含在內)。 obj的預設值是目前的模組物件。
hasattr(obj, attr):
這個方法用來檢查obj是否有一個名為attr的值的屬性,傳回一個布林值。
getattr(obj, attr):
呼叫這個方法將傳回obj中名為attr值的屬性的值,例如如果attr為’bar’,則傳回obj.bar。
setattr(obj, attr, val):
呼叫這個方法將給obj的名為attr的值的屬性賦值為val。例如如果attr為’bar’,則相當於obj.bar = val。
以上是在 Python 中如何得到物件的所有屬性的詳細內容。更多資訊請關注PHP中文網其他相關文章!