在程式設計的時候,有時候後避免不了複雜的邏輯,時不時會考慮一下怎麼去將複雜的邏輯從我們的程式中去掉。今天讀到兩段程式,受到了一些啟發。
一種人易讀時間的表示方法是 12:36:55
因此定義乙個類去表示時間可以這麼做:
>>> class time:
pass
>>> time=time()
>>> time.hours=12
>>> time.minutes=13
>>> time.seconds=34
那麼,模擬我們的第四維-時間向前跑的話,**可以這麼做
def increment(time, seconds):
time.seconds = time.seconds + seconds
while time.seconds >= 60:
time.seconds = time.seconds - 60
time.minutes = time.minutes + 1
while time.minutes >= 60:
time.minutes = time.minutes - 60
time.hours = time.hours + 1
,然而,我讀了另外一段**之後,我大嘆,讓來其實還可以這麼做!
def converttoseconds(t):
minutes = t.hours * 60 + t.minutes
seconds = minutes * 60 + t.seconds
return seconds
def maketime(seconds):
time = time()
time.hours = seconds // 3600
time.minutes = (seconds%3600) // 60
time.seconds = seconds%60
return time
好了,如是你就懂了,將人可讀的形式轉化為時間戳的形式,然後向前走吧,你走好了之後,我在把你轉換回來就行了,邏輯呢?邏輯怎麼沒了,神奇的沒了,不是沒了,而是被巧妙的掩蓋了,人類可讀的時間我們可以把他理解為60進製的,別看h%,因為分秒不會超過60,你不得不考慮超過60怎麼辦,而時間戳,就不比考慮這個了。所以,在對資料因為一些規則限制的邏輯上做文章時,不如將資料轉化為一種沒有任何規則的形式,運算後在轉化回來,這樣,我們可不可以說時間的人為可讀形式的原型是時間戳呢?值得**。
物件導向程式設計 2 類與原型
1.用函式代替物件儲存變數 變數const obj1 函式 實際上最終還是放在物件裡 const getobj 首先,變數儲存,在你申明的時候就已經把這個變數的內容存在記憶體裡的.用變數,存的就是變數,用函式,存的就是函式.換而言之,物件中存了a,b,c.而函式中並沒有,函式返回的那個物件只有在函式...
物件導向與原型2 原型
1.我們建立的每個函式 或稱建構函式或物件 都有乙個 prototype 原型 屬性,這個屬性是乙個物件 這個物件下有個prototype屬性,而這個屬性其實是另外乙個物件的引用,這個屬性就是乙個物件 它的用途是 包含可以由特定型別的所有例項共享的屬性和方法 prototype共享放到其中的屬性和方...
物件導向原型prototype
function tab name,age tab.prototype.init function var tab new tab haha 18 console.log tab.init console.log tab.content 每次新建乙個例項都會在記憶體中建立content 有點低效,解...