python自定義時鐘類、定時任務(wù)類-創(chuàng)新互聯(lián)

這是我使用python寫的第一個類(也算是學(xué)習(xí)面向?qū)ο笳Z言以來正式寫的第一個解耦的類),記錄下改進的過程。

目前成都創(chuàng)新互聯(lián)已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、景谷網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

分析需求

最初,因為使用time模塊顯示日期時,每次都要設(shè)置時間字符串的格式,挺麻煩,但還是忍了。
后來,在處理多線程任務(wù)時需要實現(xiàn)定時控制的功能,更麻煩,終于決定自己做一個解決這些問題的通用代碼(雖然網(wǎng)上有現(xiàn)成的模塊,但親手編寫這部分代碼正好能鍛煉一下我的面向?qū)ο缶幊蹋?/p>

分析框架

剛開始,我計劃做一個模仿時鐘的抽象類,讓它獨立運行在一個線程中,讓它提供顯示日期、計時、設(shè)置定時任務(wù)的方法……然而由于缺乏規(guī)劃,編程亂糟糟的,這些方法的代碼和變量交雜在一起,難以入目,更難以擴展……氣得重構(gòu)代碼,這次把顯示日期、計時、設(shè)置定時任務(wù)三大功能分別抽象成三個類,相互解耦,各自獨立運行,代碼變得簡潔多了。
ok,舊代碼就藏在git的歷史記錄里吧,這里貼出重構(gòu)后的代碼。

顯示時間的類

import time
import threading


class _Clock:
  """
  自定義的時鐘類,用于獲取幾種不同格式的當(dāng)前時間。
   decimal : 設(shè)置time_float的精度,控制其保留幾位小數(shù)。
   time_diff : 設(shè)置該時鐘與UTC+0時區(qū)的時差。如果不設(shè)置,會自動采用
   本地時區(qū)。
  """

  def __init__(self, name=None, decimal=3, time_diff=None):
    self.name = name
    self.decimal = decimal
    self.time_diff = time_diff
    self.time_format = "%Y/%m/%d %H:%M:%S" # 時間字符串的格式

  @property
  def time_float(self):
    """ UTC+0時區(qū)的時間戳,精度由self.decimal決定 """
    return round(time.time(), self.decimal)

  @property
  def time_int(self):
    """ UTC+0時區(qū)的時間戳,精度為秒 """
    return int(time.time())

  @property
  def time_tuple(self):
    """ 本地時區(qū)的時間元組 """
    if self.time_diff == None:
      return time.localtime(self.time_int)
    else:
      return time.gmtime(self.time_int+self.time_diff)

  @property
  def time_str(self):
    """ 本地時間的格式化字符串 """
    return time.strftime(self.time_format, self.time_tuple)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前題目:python自定義時鐘類、定時任務(wù)類-創(chuàng)新互聯(lián)
當(dāng)前地址:http://muchs.cn/article32/dddopc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站制作、移動網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)