1. 程式人生 > >【python】實例屬性的顯示方法-dir、__dict__

【python】實例屬性的顯示方法-dir、__dict__

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__