我正在编写一个自定义类,该类通过添加一些新功能(如改组,添加,乘法等)来扩展默认的python列表。代码如下所示:
class xlist(list):
def __init__(self, original_list: list):
self._olist = original_list
def sumall(self) -> int:
sum = 0
for e in self._olist:
sum += e
return sum
...
但是,在进行一些计算时,我需要获取a实例的类型xlist
。我想做这样的事情:
>>> from xlist import xlist
>>> x = xlist([1, 2, 3])
>>> type(x)
当我这样做时,我得到了<class 'xlist.xlist'>
,但是我希望它返回list
。
我对元类似乎可以解决问题感到困惑。
有帮助吗?
如果您确实创建了,为什么期望type(x)
返回?您的继承自,因此每个对象都是的一个实例,因为它从其所有行为中继承(并通过添加一些新功能进行扩展)。list
xlist
xlist
list
xlist
list
注意:
x = xlist([1, 2, 3])
isinstance(x, list)
返回True
。您可能还想看看和之间的差异type()
isinstance()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句