原代码:
# -*- coding: utf-8 -*-
class PositiveInteger(int):
def __init__(self, value):
super().__init__(value)
if __name__ == '__main__':
# 实例化
i = PositiveInteger(-3)#
print(i)
期望输出:
-3
报错原因:
这里__init__()不能加任何参数,否则会报错。
因为父类 int 中没有任何参数,所以不能传入参数。
# __init__修改前
super().__init__(value)
# __init__修改后
super().__init__()
debug后:
# -*- coding: utf-8 -*-
class PositiveInteger(int):
def __init__(self, value):
super().__init__()
if __name__ == '__main__':
# 实例化
i = PositiveInteger(-3)# -3
print(i)
-3
总结:
1.__init__()
中的参数需要依照父类的参数添加。