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()并使用它。谢谢你的帮助