在Python中,Range()似乎只接受整数作为参数.如何让range()接受自定义类作为参数?
我已经定义了这样一个类:
class MyInteger:
def __init__(self, a:int):
self._a = a
def __int__(self):
return self._a
我试过了:
n = MyInteger(5)
for i in range(n):
print(i)
它总是导致‘对象不能被解释为整数’,不管我是否定义了__int__.
,有什么方法可以解决这个问题吗?
不能将range(n)
更改为range(int(n))
或range(n.get_int())
.