Python 小甲魚教程 課後練習42

bestallen發表於2016-07-24

第一題,其實要求的是重寫魔法方法__sub__





第二題,重寫位運算的魔法方法,這裡用切片來重寫倒不是重點。。。重點是複習了位運算的魔法方法是__lshift__和__rshift__







第三題,要求將所輸入的字串進行ascII轉換並求和,然後再在物件之間進行四則運算,要求如下:


這道題目我首先想到的是重寫__new__方法,因為題目的要求其實就是在建立字串物件的例項的時候,將字串轉換成ASCII數字之和

我自己的程式如下:

class Nstr:
def __new__(cls,arg=0):
if isinstance(arg,str):            這句蠻重要的,判斷是否是字串型別
sum=0
for i in arg:
sum+=ord(i)
return sum

a=Nstr('abc')
print (a)



然後再看看小甲魚的程式

感覺第一種有點繁瑣,因為你還得重寫加減乘除四則運算



第二種方法有些不明白的地方,大致上思路和我是一樣的,但是他為什麼建class的時候需要繼承int類,因為我按照自己方法,不繼承,或者繼承str,都一樣?



相關文章