日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python自己做个定时器_python 创建一个自己的类计时器

發(fā)布時間:2025/3/11 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自己做个定时器_python 创建一个自己的类计时器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:

學習了python的類之后收獲頗多,于是想利用類創(chuàng)建一個簡單的計時器

第一代版本

首先要明確自己的timer想要實現(xiàn)的功能…先列一些簡單的吧

比如:開始計時的功能,停止計時的功能,有一些簡單的提示語…

還有一個問題,叫什么名字呢…

既然我們同屬地球人,那就叫EarthTimer吧,額,就叫ETimer算了

import time as t

class ETimer:

"""創(chuàng)建一個計時器的類"""

# 初始化一些可能會用到的變量

def __init__(self):

self.begin = 0

self.end = 0

self.lasted = 0

# 開始計時

def start(self):

self.begin = t.time()

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

# 停止計時,并顯示持續(xù)時間

def stop(self):

self.end = t.time()

print("計時結(jié)束...")

self.lasted = self.end - self.begin

# 報出持續(xù)時間

print(f'持續(xù)了{self.lasted}秒')

好了,以上就是最簡單的雛形,能實現(xiàn)簡單的計時,報時功能,采用實例化類對象的方法調(diào)用

但是簡單的缺點也很明顯,如果改變方法的調(diào)用順序,程序就會報錯,因此,應該有相應的處理措施

第二代版本

要應對不同的情況,if語句能充分發(fā)揮作用

import time as t

class ETimer:

"""創(chuàng)建一個計時器的類"""

# 初始化一些可能會用到的變量

def __init__(self):

self.begin = 0

self.end = 0

self.lasted = 0

print("請調(diào)用start開始計時...")

# 開始計時

def start(self):

# 已調(diào)用過start方法

if self.begin:

print("請調(diào)用stop停止計時...")

else:

self.begin = t.time()

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

# 停止計時,并顯示持續(xù)時間

def stop(self):

# 如果未先調(diào)用start方法

if self.begin == 0:

print("請調(diào)用start方法開始計時...")

else:

self.end = t.time()

print("計時結(jié)束...")

self.lasted = self.end - self.begin

# 報出持續(xù)時間

print(f'持續(xù)了{self.lasted}秒')

# 初始化變量

self.begin = 0

self.end = 0

這樣的話,提示就變得更加人性化了,也能防止用戶在一定程度的操作失誤的情況下,防止程序崩潰

但是,對于一個正常的計時器,要實現(xiàn)的功能遠不止于此,我不能因為自己技術(shù)的貧困而放棄對美好事物的追求。也許在計時過程中還會用到多次調(diào)用,以及調(diào)用以前的記錄,或者將幾次記錄相加,應該在代碼中加入相應的功能

魔法方法

在學習過程中,我了解到python在使用運算符還有調(diào)用某個變量時,會調(diào)用其對應的類的某種方法來實現(xiàn)前面的功能。

比如:python遇到 “+” 運算符時,會調(diào)用內(nèi)部的__add__()方法;調(diào)用變量時,會調(diào)用內(nèi)部的__repr__()方法;調(diào)用print函數(shù)時,python會調(diào)用內(nèi)部的__str__()方法…這些都是python的魔法方法

我們可以重寫這些魔法方法,使其在我們創(chuàng)建的類中有額外的功效,也就是定制我們自己的類方法

重寫__rper__()方法,使我們在交互式python解釋器下通過直接輸入對象就可以調(diào)出相應值。(注:rper()方法的返回值必須是字符串,而且必須有返回值,如果用print()方法代替輸出,就會出現(xiàn)無限套娃,str()方法也是一樣)

# 重寫__rper__方法

def __repr__(self):

if self.lasted == 0:

return "沒有該條記錄..."

else:

return f"該條記錄為{self.lasted}秒"

通過重寫__add__方法,使得在調(diào)用兩次計時的記錄并把他們相加時,能得到我們想想要的結(jié)果

# 重寫__add__方法

def __add__(self, other):

if self.lasted * other.lasted == 0:

return "缺少該條記錄..."

else:

return f"總共為 {self.lasted + other.lasted} 秒"

現(xiàn)在,只要通過實例化方法創(chuàng)建對象,我們的計時器能實現(xiàn)相當大部分的功能

通過類似的方式,也可以向計時器添加更多的功能…

反思與感悟

在python中,一切皆對象。數(shù)字、字符串、元組、列表、字典、函數(shù)、方法、類、模塊等等都是對象,包括你的代碼。

了解python的一些魔法方法,或者重寫它們,會達到意想不到的效果,比如將加減法互換…

在學習python的過程中總能發(fā)現(xiàn)一些新樂趣,這些東西總能激起我學習的動力

參考資料

原文鏈接:https://blog.csdn.net/JesseGrowing/article/details/112546313

總結(jié)

以上是生活随笔為你收集整理的python自己做个定时器_python 创建一个自己的类计时器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。