十四 類與物件
14.1物件 = 屬性 + 方法
物件是類的例項。換句話說,類主要定義物件的結構,然後我們以類為模板建立物件。類不但包含方法定義,而且還包含所有例項共享的資料。
1 封裝:資訊隱蔽技術
我們可以使用關鍵字 class 定義 python 類,關鍵字後面緊跟類的名稱、分號和類的實現。
class
turtle
:# python中的類名約定以大寫字母開頭
"""關於類的乙個簡單例子"""
# 屬性
color =
'green'
weight =
10 legs =
4 shell =
true
mouth =
'大嘴'
# 方法
defclimb
(self)
:print
('我正在很努力的向前爬...'
)def
run(self)
:print
('我正在飛快的向前跑...'
)def
bite
(self)
:print
('咬死你咬死你!!'
)def
eat(self)
:print
('有得吃,真滿足...'
)def
sleep
(self)
:print
('困了,睡了,晚安,zzz'
)tt = turtle(
)print
(tt)
# <__main__.turtle object at 0x0000007c32d67f98>
print
(type
(tt))#
print
(tt.__class__)
# print
(tt.__class__.__name__)
# turtle
tt.climb(
)# 我正在很努力的向前爬...
tt.run(
)# 我正在飛快的向前跑...
tt.bite(
)# 咬死你咬死你!!
# python類也是物件。它們是type的例項
print
(type
(turtle)
)#
2 繼承:子類自動共享父類之間資料和方法的機制
3 多型:不同物件對同一方法響應不同的行動
14.2 self
python的self相當於c++的this指標
14.3 魔法方法__init__
init__是乙個建構函式,這個函式預設是沒有引數的,如果我們需要給類的例項的屬性初始化一些值,這是就要用到__init__函式了。
魔法方法__new
__new__的主要作用是當我們需要繼承一些不可變的class時(如str,tuple,int),提供給你乙個自定義這些類的例項化的過程。
class
ball
:def
__init__
(self, name)
: self.name = name
defkick
(self)
:print
("我叫%s,該死的,誰踢我..."
% self.name)
a = ball(
"球a"
)b = ball(
"球b"
)c = ball(
"球c"
)a.kick(
)# 我叫球a,該死的,誰踢我...
b.kick(
)# 我叫球b,該死的,誰踢我...
第十次作業
linux網路服務 osi七層模型 物理層 傳輸介質,組網 資料鏈路層 mac位址定址,資料成幀,資料檢測,重發apr 網路層 將網路位址轉化為實體地址,網路位址定址,路由 ip協議 傳輸層 提供端對端的資料交換,連線,埠 會話層 提供點對點的連線 表示層 資料格式化 應用層 應用程式,服務 tcp...
第十次作業
1.將以下文法消除左遞迴,分析符號串 i i i e e t t t t f f f e i 解 文法改寫 e te e te t ft t ft f e i first集 first e first e first t first t first f follow集 follow e follow...
第十次作業
1,簡述string類中的equals方法與object類中的equals方法的不同點。i string類的equals方法比較的是內容,object類中的equals方法比較的是記憶體位址 2,編寫程式,scanner 當以年 月 日的格式輸入乙個日期時,輸出其該年是否為閏年,該月有幾天,該日是星...