【python】實例屬性的顯示方法-dir、__dict__
阿新 • • 發佈:2018-02-28
python在測試實例的屬性時,產生過一個誤解。
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‘}
可以看到此時已經有了實例屬性。
【python】實例屬性的顯示方法-dir、__dict__