python 继承基本类型遇到的疑问
#继承list的mylistclass my_list(list):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
def __str__(self):
return f'<my_list {self!r}>'
l = my_list({1,2,3,})
l.pop()
print(l)#<my_list >
#继承str的mystr
class my_str(str):
def __init__(self,*args,**kwargs):
super().__init__()
def __str__(self):
return f'<my_str {self!r}>'
s = my_str('你好')
print(s)#<my_str '你好'>
第16行mystr要写`super().__init__()`
如果和mylist一样写`super().__init__(*args,**kwargs)`会报错
这是为什么{:5_104:}
作为函数定义时:
1、*参数收集所有未匹配的位置参数组成一个tuple对象,局部变量args指向此tuple对象
2、**参数收集所有未匹配的关键字参数组成一个dict对象,局部变量kwargs指向此dict对象
解包的时候和super().__init__()参数不匹配。
页:
[1]