python中巨型列表状对象的长度

python中巨型列表状对象的长度,python,python-3.x,math,instance-variables,largenumber,Python,Python 3.x,Math,Instance Variables,Largenumber,我正在创建一个类似列表的对象,它包含大量的元素,但是当我运行下面的代码时,我得到了一个错误 class test: def __init__(self, n): self.n = n def __len__(self): return self.n instance = test(10**20) print(len(instance)) 我得到的错误是: 溢出错误:无法将“int”放入索引大小的整数中 有人知道出了什么

我正在创建一个类似列表的对象,它包含大量的元素,但是当我运行下面的代码时,我得到了一个错误

class test:
    def __init__(self, n):
        self.n = n
        
    def __len__(self):
        return self.n
    
instance = test(10**20)
print(len(instance))
我得到的错误是: 溢出错误:无法将“int”放入索引大小的整数中


有人知道出了什么问题吗?

这是一个CPython实现细节。从:

在CPython中,长度要求最多为
sys.maxsize
。如果 长度大于某些功能(例如
len()
) 可能引发
溢出错误
。防止用真理引起越界 在进行值测试时,对象必须定义
\uuubool\uuu()
方法


请使用完整的错误回溯更新您的问题。
python-c“导入平台;打印(platform.architecture())”
show?@juanpa.arrivillaga它显示:('64位,'WindowsPE')这回答了您的问题吗?是的,谢谢你MiyakiAh先生好吧,奇怪。无论如何,我做了一个变通,将_len__()函数重命名为just length()并使用它。谢谢你的帮助