有关__new__参数的问题
请问为什么arg这个参数在 等于''时我传入数字他会报错,而我后面正确代码arg等于0,此时传入字符串不报错呢?上面的代码只完成了一半,在传入数字时这样子就会报错?
for each in start 当你传入数字时候,即 start 参数的值为一个数字,这里会报错
就算 for 循环不会报错,你的 ord() 函数也不能对整型使用
因为数字是不能 for 循环迭代,所以报错了
而字符串是可迭代对象,自然 for 循环一个字符串不会报错
'''class Nint(int):
def __new__(cls, start = ''):
count = 0
for each in start:
count += ord(each)
return count
'''
#上面的代码只完成了一半,在传入数字时这样子就会报错
#正确代码
class Nint(int):
def __new__(cls, arg=0):
if isinstance(arg, str):
count = 0
for each in arg:
count += ord(each)
arg = total
return int.__new__(cls, arg)
图片不知道为什么挂了。。。。 大地郡主 发表于 2020-7-16 00:07
'''class Nint(int):
def __new__(cls, start = ''):
count = 0
__new__(cls) 魔法方法是返回他本身(return int.__new(cls)),而不是一个 int(return count) 犯了低级错误了,还是要认真,谢谢您!{:10_266:}
页:
[1]