第一题,其实要求的是重写魔法方法__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,都一样?