面向原型程式設計

2021-06-20 12:29:33 字數 1304 閱讀 2415

在程式設計的時候,有時候後避免不了複雜的邏輯,時不時會考慮一下怎麼去將複雜的邏輯從我們的程式中去掉。今天讀到兩段程式,受到了一些啟發。

一種人易讀時間的表示方法是 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 有點低效,解...