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

歡迎訪問 生活随笔!

生活随笔

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

python

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

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

前言:

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

第一代版本

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

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

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

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

import time as t

class ETimer:

"""創建一個計時器的類"""

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

def __init__(self):

self.begin = 0

self.end = 0

self.lasted = 0

# 開始計時

def start(self):

self.begin = t.time()

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

# 停止計時,并顯示持續時間

def stop(self):

self.end = t.time()

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

self.lasted = self.end - self.begin

# 報出持續時間

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

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

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

第二代版本

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

import time as t

class ETimer:

"""創建一個計時器的類"""

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

def __init__(self):

self.begin = 0

self.end = 0

self.lasted = 0

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

# 開始計時

def start(self):

# 已調用過start方法

if self.begin:

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

else:

self.begin = t.time()

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

# 停止計時,并顯示持續時間

def stop(self):

# 如果未先調用start方法

if self.begin == 0:

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

else:

self.end = t.time()

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

self.lasted = self.end - self.begin

# 報出持續時間

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

# 初始化變量

self.begin = 0

self.end = 0

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

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

魔法方法

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

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

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

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

# 重寫__rper__方法

def __repr__(self):

if self.lasted == 0:

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

else:

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

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

# 重寫__add__方法

def __add__(self, other):

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

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

else:

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

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

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

反思與感悟

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

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

在學習python的過程中總能發現一些新樂趣,這些東西總能激起我學習的動力

參考資料

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。