python入门课程41讲
class Nint(int):def __new__(cls, arg=0):
if isinstance(arg, str):
total = 0
for each in arg:
total += ord(each)
arg = total
return int.__new__(cls, arg)
标黄色的部分是为什么呢?这个参数为什么要给它赋值?
标蓝色的部分为什么arg能属于字符串这个类型呢? 先说黄色部分。这是带有默认值的参数,调用函数的时候,若没有给出这个参数,那这个参数的只就使用这个默认值。
再说蓝色部分。arg是传进来的参数,什么类型都有可能啊。
这个类是继承了int,然后若输入的参数是字符串,就把字符串的各个字符的ascii之和作为该数值。
class Nint(int):
def __new__(cls, arg=0):
if isinstance(arg, str):
total = 0
for each in arg:
total += ord(each)
arg = total
return int.__new__(cls, arg)
print(Nint('10'))# 这一行 输出 97
print(Nint()) # 这一行输出 0
print (Nint(25))# 这一行输出 25 arg 是带有默认值的参数,默认为 0 。
arg 可以是字符串,如果是,则执行 if 下面的代码
页:
[1]