Python 小甲鱼教程 课后练习42

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值