python 魔法方法(2)

2021-10-05 20:47:01 字數 1813 閱讀 9752

類的定製:

簡單定製:

完成以上功能,需要這些資源

使用time模組的localtime方法獲取時間,擴充套件閱讀:time 模組詳解(時間獲取和轉換)

time.localtime返回struct_time的時間格式

表現你的類:__str__ 和 __repr__

time.localtime返回的資料結構如下:

重寫__str__(self)魔法方法

class a():

def __str__(self):

return 『需要輸出的資訊』

a=a()

print(a)

重寫__repr__(self)魔法方法,同上

通過重寫這兩個方法,可以是實現print(例項變數)和直接輸入例項變數,都可以直接輸出需要的資訊

import time as t

class mytimer:

def __init__(self):

self.unit = ['年', '月', '天', '小時', '分鐘', '秒']

self.prompt = "未開始計時!"

self.lasted =

self.begin = 0

self.end = 0

def __str__(self):

return self.prompt

__repr__ = __str__

def __add__(self, other):

prompt = "總共執行了"

result =

for index in range(6):

if result[index]:

prompt += (str(result[index]) + self.unit[index])

return prompt

# 開始計時

def start(self):

self.begin = t.localtime()

print("計時開始...")

# 停止計時

def stop(self):

if not self.begin:

else:

self.end = t.localtime()

self._calc()

print("計時結束!")

# 內部方法,計算執行時間 注意:內部方法、內部變數用乙個下劃線_開始

def _calc(self):

self.lasted =

self.prompt = "總共執行了"

for index in range(6):

if self.lasted[index]:

self.prompt += (str(self.lasted[index]) + self.unit[index])

# 為下一輪計時初始化變數

self.begin = 0

self.end = 0

if self.lasted[index]:self.prompt += (str(self.lasted[index]) + self.unit[index])這條語句用來不顯示為0的項,比如不會出現「0年0月......」

python 魔法方法2

溫度計 攝氏度屬性的描述符類 class celsius def init self,value 26 溫度初始化 self.value float value 例項化物件,並轉化成浮點數 def get self,instance,owner 當self的屬性被獲得的時候,獲得攝氏度初始值 ret...

Python魔法方法 基本的魔法方法

new cls 1.new 是在乙個物件例項化時候所呼叫的第乙個方法 2.他的第乙個引數是這個類,其他的引數是用來直接傳遞給 init 方法 3.new 決定是否使用該 init 方法,因為.new 可以直接呼叫其他類的構造方法,或者返回別的例項物件來作為本類的例項,如果 new 沒有返回例項物件,...

python 魔法方法

魔法方法具有一定的特徵 new cls class capstr str def new cls,string 修改新類裡的new方法,需傳入乙個引數 string string.upper return str.new cls,string 用父類裡的new方法進行返回,直接飯後構造後的物件def...