1. 程式人生 > >python面向對象筆記

python面向對象筆記

類對象 strong 面向 python2.x tro python3.x 模型 string 自身

定義類就是建立模型(模子/印章)
實例化類就是建立真實事物(產品/印章印出的圖案)
特征/屬性,是類自身包含或指導的數據
能力,以方法體現,是類具有能動性的體現
實例化步驟:
調用new()方法創建實例
new()方法自動從object繼承
調用init()方法對其初始化
init()方法在類中定義
添加類說明(docstring):
緊跟類名行之後,以三引號保為的字符串
help(類名) 可查看類說明
class TestClass:
‘‘‘
這是類的說明
‘‘‘
def pr(self):
print("hello world!")
pass
help(TestClass)

新式類與經典類:
python2.X版本默認是經典類,繼承object為新式類

python3.X版本統一為新式類,不用繼承object
區別:
經典類繼承為深度優先
新式類繼承為廣度優先
實例屬性:
類被實例化以後才會具有的屬性
一般在init()方法中創建並初始化
直接使用即定義:self.<屬性名>
引用方法:self.<屬性名>
self代表類的實例
類外用實例名,屬性名方式定義和引用
相同類的不同實例其實例屬性是不相關的
一般不建議在init()方法之外中創建和初始化實例屬性
一般不推薦類外定義和修改,修改可以單獨定義方法
類屬性:
類定義後就存在,而且不需要實例化
類屬性使得相同類的不同實例共同持有相同變量

-- coding=utf-8 --

class TestClass:

cssa = ‘Hello World!!!‘
def info(self):
print(‘yyy:‘,self.cssa)
pass
rc = TestClass()
rc.info()
rc1 = TestClass()
rc1.info()
TestClass.cssa = ‘my name is fahai, i am administrator‘
rc.info()
rc1.info()
私有屬性:
不提供限制屬性訪問的關鍵字(無法限制類的各種屬性在類外直接訪問)
使用__開頭的變量名加以標誌,只有類對象自己能訪問
使用_開頭的變量名加以標誌,應該只有類對象及子類能訪問(非強制性)

-- coding=utf-8 -
-

class A:
def init(self):
self.__ab = 0

def info(self):
    print(self.__ab)
pass

a = A()
a.info()
a.ab = 3
a.info()
print(a.
ab)
特殊屬性:
doc 保存類說明文檔字符串
name 保存類的名稱
dict 保存實例屬性名稱和值
module 保存類所在的文件名
base 保存這個類的父類

python面向對象筆記