task07 類與物件 魔方方法

2021-10-08 21:42:42 字數 3036 閱讀 9441

1、以下類定義中哪些是類屬性,哪些是例項屬性?

類屬性:類裡面方法外面定義的變數稱為類屬性。類屬性所屬於類物件並且多個例項物件之間共享同乙個類屬性,說白了就是類屬性所有的通過該類例項化的物件都能共享。

例項屬性:例項屬性和具體的某個例項物件有關係,並且乙個例項物件和另外乙個例項物件是不共享屬性的,說白了例項屬性只能在自己的物件裡面使用,其他的物件不能直接使用,因為self是誰呼叫,它的值就屬於該物件。

2、怎麼定義私有⽅法?

在 python 中定義私有變數只需要在變數名或函式名前加上「__」兩個下劃線,那麼這個函式或變數就會為私有的了。

3、嘗試執行以下**,並解釋錯誤原因:

classc:

defmyfun()

:print

('hello!'

) c = c(

) c.myfun(

)

建立例項物件時不應該在類定義中;類中的每個方法都必須至少有乙個引數self,且必須是方法的第乙個形參,self引數代表當前物件,即def myfun(self)。

classc:

defmyfun

(self)

:print

('hello!'

)c = c(

)c.myfun(

)

4、按照以下要求定義乙個遊樂園門票的類,並嘗試計算2個** + 1個小孩平日票價。

要求:

class

ticket()

: usual_ticket =

100 weekend =

120def

calculate_usual

(self, adult, children)

: money = self.usual_ticket * adult + self.usual_ticket //

2* children

return money

defcalculate_weekend

(self, adult, children)

: money = self.weekend * adult + self.weekend //

2* children

return money

t = ticket(

)print

(t.calculate_usual(2,

1))

1、上面提到了許多魔法方法,如__new__,__init__,__str__,__rstr__,__getitem__,__setitem__等等,請總結它們各自的使用方法。

__init__在類例項化時會自動呼叫。

new__對當前類進行了例項化,並將例項返回,傳給__init__的self。但是,執行了__new,並不一定會進入__init,只有__new__返回了,當前類cls的例項,當前類的__init__才會進入。

__str__在列印物件,用%s格式化以及強制轉換資料型別時觸發。

__rstr__在沒有實現__str__以及使用%r格式化的時候觸發。

__getitem__定義獲取容器中元素的行為,相當於self[key]。

__setitem__定義設定容器中指定元素的行為,相當於self[key] = value。

2、利用python做乙個簡單的定時器類

要求:

import time

class

timer

:def

__init__

(self)

:print

('未開始計時'

) self.info =

'未開始計時'

self.start_time =

none

self.sec =

none

defstart

(self)

:print

('開始計時'

) self.start_time = time.time(

) self.info =

'正在計時'

defstop

(self)

:try

: self.sec = time.time(

)- self.start_time

except

:print

('未開始計時或計時已結束'

)else

:print

('停止計時'

) self.info =

'已計時:%f s'

% self.sec

def__str__

(self)

:return self.info

def__add__

(self, others)

:return

'共計時 %f s'

%(self.sec + others.sec)

t1 = timer(

)

t1.stop(

) t1.start(

) time.sleep(1)

t1.stop(

)print

(t1)

t2 = timer(

)

t2.start(

) time.sleep(2)

t2.stop(

)print

(t1+t2)

#未開始計時

#未開始計時或計時已結束

#開始計時

#停止計時

#已計時:1.002307 s

#未開始計時

#開始計時

#停止計時

#共計時 3.002707 s

Task07 類 物件與魔法方法

物件 屬性 方法 物件是類的例項。換句話說,類主要定義物件的結構,然後我們以類為模板建立物件。類不但包含方法定義,而且還包含所有例項共享的資料。1.封裝 資訊隱蔽技術 我們可以使用關鍵字class定義python類,關鍵字後面緊跟類的名稱 分號和類的實現 2.繼承 子類自動共享父類之間資料和方法的機...

Task07 類與物件與魔法方法

classc num 0 類屬性 def init self self.x 4 例項屬性 self.y 5 例項屬性 c.count 6 例項屬性def 方法名 classc defmyfun print hello c c c.myfun 建立例項物件的時候不應該包含在類中 類中的每個方法都必須至...

python基礎 07 類與物件 魔方方法

1 概念 類 主要定義物件的結構,然後我們以類為模板建立物件。類不但包含方法定義,而且還包含所有例項共享的資料。物件 通過類定義的資料結構例項。物件包括兩個資料成員 類變數和例項變數 和方法。物件是類的例項 例項化 建立乙個類的例項,類的具體物件。方法 類中定義的函式。繼承 子類自動共享父類之間資料...