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