|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目是这样的:
定义一个类继承于 int 类型,并实现一个特殊功能:当传入的参数是字符串的时候,返回该字符串中所有字符的 ASCII 码的和(使用 ord() 获得一个字符的 ASCII 码值)。
01.>>> print(Nint(123))
02.123
03.>>> print(Nint(1.5))
04.1
05.>>> print(Nint('A'))
06.65
07.>>> print(Nint('FishC'))
08.461
程序是这样的:
class Nint(int):
def __new__(cls, arg=0):
if isinstance(arg, str):
sum=0
for each in arg:
sum+=ord(each)
arg=sum
return int.__new__(cls,arg)
print(Nint(123))
print(Nint(1.5))
print(Nint('A'))
print(Nint('FishC'))
这里arg是什么参数?为什么把要返回的值sum赋值给arg? 求指点。
1. arg 是题目例子里的 "A" 与 "FishC"
2. 因为 sum 是字符串,例如 "65",所以要 sum赋值给arg,然后传入 int.__new__(cls,arg) 使字符串准转为整型,你也可以这样写 int.__new__(cls,sum),这样就不用sum赋值给arg了
|
|