91. Python 中類的特殊屬性

目錄

特殊屬性


特殊屬性

Python對象中包含了很多雙下劃線開始和結束的屬性, 這些事特殊屬性, 有特殊用法; 這裏我們列出常見的特殊屬性;

特殊方法

含義

Obj.__dict__

對象的屬性字典

Obj.__class__

對象所屬的類

Class.__bases__

類的基類元組(多繼承)

Class.__base__

類的基類

Class.__mro__

類層次結構

Class.__subclasses__()

子類列表

# 多重繼承
class A:
    def aa(self):
        print("aa")

    def say(self):
        print("say AAA!")


class B:
    def bb(self):
        print("bb")

    def say(self):
        print("say BBB!")


class C(B, A):  # 繼承同名方法時,B在前面就先用B的方法,誰在前用誰
    def __init__(self,n):
        self.n = n

    def cc(self):
        print("cc")


s = C(12);
s.aa()
s.bb()
s.cc()
print(C.mro())  # 打印類的層次結構
s.say()  # 解釋器尋找方法是"從左到右"的方式尋找,此時會執行B
dir(s)
print(s.__dict__) #對象的屬性字典
print(s.__class__) #對象所屬的類
print(C.__bases__) #類的基類元組(多繼承)
print(C.__base__) #類的基類
print(A.__subclasses__()) #子類列表

輸出:

D:\wwwroot\pyiteam\venv\Scripts\python.exe D:/wwwroot/pyiteam/mypro_obj/mypy02.py
aa
bb
cc
[<class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>]
say BBB!
{'n': 12}
<class '__main__.C'>
(<class '__main__.B'>, <class '__main__.A'>)
<class '__main__.B'>
[<class '__main__.C'>]

Process finished with exit code 0





 

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