python例項屬性的顯示方法-dir、__dict__

船頭尺發表於2021-09-09

在測試例項的屬性時,產生過一個誤解。

class Test():    name = 'python'    def printest():        print 'Test'a = Test()print dir(a)print a.__dict__

其中dir(a)列印出的內容為:['doc', 'module', 'name', 'printest']
其中a.dict列印出的內容為:{}

之前誤以為dir(a)為例項a的已有屬性,實際dir的含義是:它返回一個列表,包含所有能找到的屬性的名字,即返回類及其子類的屬性、方法列表。比如a的類是Test,name實際是類屬性。

dict的含義是:這個屬性就是將物件內的屬性和值用字典的方式顯示出來。注意此處說的是物件,此時的物件是a,而例項a本身是沒有任何屬性的,所以打出來是{}。(可以使用a.name訪問是由於向上查詢的原因)

比如給a設定屬性後,再檢視兩個函式的列印。

class Test():    name = 'python'    def __init__(self):        self.lastname = 'tttt'    def printest():        print 'Test'a = Test()a.firstname = 'hhh'print dir(a)print a.__dict__

列印輸出是這樣的:
['doc', 'init', 'module', 'firstname', 'lastname', 'name', 'printest']
{'lastname': 'tttt', 'firstname': 'hhh'}
可以看到此時已經有了例項屬性。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3016/viewspace-2802860/,如需轉載,請註明出處,否則將追究法律責任。

相關文章