85. Python中object 根類--dir()查看屬性

目錄

查看類的繼承層次結構

object() 根類


查看類的繼承層次結構

通過類的方法 mro() 或者類的屬性__mro__可以輸出這個類的繼承層次結構;

 

 

object() 根類

object 類是所有類的父類, 因此所有的類都有object 類的屬性和方法; 我們顯然有必要深入研究一下object 類的結構;

dir( ) 查看對象屬性

可以方便我們看到指定對象所有的屬性

#查看類的繼承層次結構
class A:pass
class B(A):pass
class C(B):pass
print(C.mro())

print("*"*30)
class Person:
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def say_age(self):
        print(self.name,"的年齡是:",self.age)
obj = object()
print(dir(obj))
print("---"*15)
'''
從上面我們可以發現這樣幾個要點
1.Person對象增加了六個屬性
__dict__   __module__ __weakref__ age name say_age
2.object的所有屬性,Person類作爲object的子類,顯然包含了所有的屬性
3.我們打印age,name,say_age,發現say_age雖然是方法,實際上也是屬性,
只不過,這個屬性的類型是'method'而已;
age <class 'int'>
name <class 'str'>
say_age <class 'method'>
'''

s2 = Person("李四",18)
print(dir(s2))

輸出:

D:\wwwroot\pyiteam\venv\Scripts\python.exe D:/wwwroot/pyiteam/mypro_obj/mypy02.py
[<class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>]
******************************
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
---------------------------------------------
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name', 'say_age']

Process finished with exit code 0



 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章