構造和析構
構造
類定義時,有時候寫__init__方法,有時候卻沒有,這是為什麼呢?
__init(self,[,...])
答: 需求!
__new__(cls[,...])
####重寫str字串類####
calss upstr(str):
def __new__(cls,string): #string會原封不動的傳給init方法
string = string.upper()
return str.__new__(cls,string)
s = upstr("i love fishc")
s
析構
__del__
當多有物件的引用都被銷毀時,才會呼叫__del__函式
算數運算
>>>
class
new_int
(int):
def__add__
(self,other):
return int.__sub__(self,other)
>>> a = new_int(3)
>>> b = new_int(3)
>>> a+b
0
簡單定製
基本要求:
定義乙個計數器類
start和stop方法代表啟動計時和停止計時
假設計時器物件t1,print(t1)和直接呼叫t1均顯示結果
當計時器未啟動或已經停止計時,呼叫stop方法會給予溫馨的提示
兩個計時器物件可以進行相加:t1+t2
只能使用提供的有限資源完成
需要資源:
使用time模組的localtime方法獲取時間
time.localtime返回struct_time的時間格式
表現你的類:__str__和__repr__
Python類的魔法方法
名字重整,類中例項物件的私有屬性,可以使用 dict 檢視,檢視到的私有屬性其實已經改名為 類名 屬性名,可以使用例項物件.類名 屬性名檢視。表示類的描述資訊 module 表示當前操作的物件在那個模組 class 表示當前操作的物件的類是什麼 test.py test.py coding utf ...
類中的魔法方法
在python中有很多魔法方法,常見的 init self 就是魔法方法的一種,類繫結物件是自動觸發。那就來聊一聊其他的魔法方法。str 方法 這中方法需要返回值,並且返回值為字串型別。str 方法 class a def str self 列印物件self觸發。登出是結果1,未登出時結果2 ret...
Python魔法方法 基本的魔法方法
new cls 1.new 是在乙個物件例項化時候所呼叫的第乙個方法 2.他的第乙個引數是這個類,其他的引數是用來直接傳遞給 init 方法 3.new 決定是否使用該 init 方法,因為.new 可以直接呼叫其他類的構造方法,或者返回別的例項物件來作為本類的例項,如果 new 沒有返回例項物件,...