2017-05-01 34 views
-3

我想知道如果我甚至需要創建這個類來存儲我需要能夠抓住時間模塊的信息。這是不好的代碼?我甚至不知道這是否是一個很好的問題。還是我過分複雜的事情?我基本上只需要日期和時間,因爲我將創建一個sign_in/out方法,在用戶登錄或註銷時爲用戶創建時間戳。基本上就像打卡系統一樣。在此先感謝 傑拉德新的面向對象編程的概念

import time 
the_time = time.localtime() 

class Clock(): 

    def __init__(self, year, month, day, hour, minute, second): 
     self.year = year 
     self.month = month 
     self.day = day 
     self.hour = hour 
     self.minute = minute 
     self.second = second 

list1 = [] 
for t in the_time: 
    list1.append(t) 
print(list1) 



clock_list = Clock(list1[0],list1[1],list1[2],list1[3],list1[4],list1[5]) 

print(clock_list.minute) 
print(clock_list.second) 
+1

這是一個意見的問題,但我個人不會使用類似的東西... –

+3

你通常會使用''datetime''。不要重新發明輪子。 – Grimmy

+1

你過於複雜的事情。 'time.localtime()'返回一個具有命名屬性的對象。只是'print(the_time.tm_min)',等等。無需班級。 –

回答

0

從一個嚴格的計算機科學的角度,你永遠不要需要使用面向對象編程 - 如果你正在使用的語言是圖靈完備的,那麼你就可以用一些簡單的指令編寫你想要的所有代碼。 OOP的意義在於,通過隱藏程序其餘部分的實現細節,可以使更大型的程序更容易管理。

就你而言,你所做的並不是錯誤本身,但如果這就是你所有的程序所做的,那麼你就不需要OOP了。如果你的程序開始變大,那麼使用OOP可能是值得的。

學習OOP的難點之一就是知道什麼時候抽象,知道抽象是什麼。一旦您嘗試使用OOP編寫一些程序,應該開始變得更清晰。

+0

感謝您的輸入:)我想我可能是在爲自己複雜的事情。我一直在讀Tkinter,因爲生病可能用它來做一個登錄按鈕和文本框小部件仍然有很多東西要學習:P大量的試驗和錯誤:P –