類的魔法方法

2021-08-07 14:30:18 字數 1179 閱讀 2473

構造和析構

構造

類定義時,有時候寫__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 沒有返回例項物件,...