在 Python 中如何得到物件的所有屬性

anonymity
發布: 2019-05-25 14:32:02
原創
8672 人瀏覽過

在 Python 中使用反射可以得到物件的所有屬性,這個機制被稱為反射(反過來讓物件告訴我們他是什麼),用於實現在運行時獲取未知物件的資訊。

在 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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板