这很简单 TypeError 但是 :(
It's simple TypeError but :(
你好,我是 Python 的新人。
我正在尝试制作一个随机迭代器。但是我收到 TypeError ,我不知道为什么 :(
我通常会看到它什么时候有这样的错误缓解,但这次我没有弄错。
提前谢谢你
输入
import random
class RandomInts:
def __init__(self, length, *, seed=0, lower=0, upper=10):
self.length = length
self.seed = seed
self.lower = lower
self.upper = upper
def __len__(self):
return self.length
def __iter__(self):
return self.RandomIterator(self.length,
seed=self.seed,
lower=self.lower,
upper=self.upper)
class RandomIterator:
def __iter__(self, length, *, seed, lower, upper):
self.length = length
self.lower = lower
self.upper = upper
self.num_requested = 0
random.seed(seed)
def __iter__(self):
return self
def __next__(self):
if self.num_requested >= self.length:
raise StopIteration
else:
result = random.randint(self.lower, self.upper)
self.num_requested += 1
return result
randoms = RandomInts(10)
for num in randoms:
print(num)
输出
Traceback (most recent call last):
File "E:\Python_Learning\Avanced_sorting_iterables\sorting_iterables_1.py", line 42, in <module>
for num in randoms:
File "E:\Python_Learning\Avanced_sorting_iterables\sorting_iterables_1.py", line 15, in __iter__
return self.RandomIterator(self.length,
TypeError: RandomIterator() takes no arguments
你是说
def __iter__(self, length, *, seed, lower, upper):
要么
def __init__(self, length, *, seed, lower, upper):
在 RandomIterator
?
你好,我是 Python 的新人。
我正在尝试制作一个随机迭代器。但是我收到 TypeError ,我不知道为什么 :( 我通常会看到它什么时候有这样的错误缓解,但这次我没有弄错。 提前谢谢你
输入
import random
class RandomInts:
def __init__(self, length, *, seed=0, lower=0, upper=10):
self.length = length
self.seed = seed
self.lower = lower
self.upper = upper
def __len__(self):
return self.length
def __iter__(self):
return self.RandomIterator(self.length,
seed=self.seed,
lower=self.lower,
upper=self.upper)
class RandomIterator:
def __iter__(self, length, *, seed, lower, upper):
self.length = length
self.lower = lower
self.upper = upper
self.num_requested = 0
random.seed(seed)
def __iter__(self):
return self
def __next__(self):
if self.num_requested >= self.length:
raise StopIteration
else:
result = random.randint(self.lower, self.upper)
self.num_requested += 1
return result
randoms = RandomInts(10)
for num in randoms:
print(num)
输出
Traceback (most recent call last):
File "E:\Python_Learning\Avanced_sorting_iterables\sorting_iterables_1.py", line 42, in <module>
for num in randoms:
File "E:\Python_Learning\Avanced_sorting_iterables\sorting_iterables_1.py", line 15, in __iter__
return self.RandomIterator(self.length,
TypeError: RandomIterator() takes no arguments
你是说
def __iter__(self, length, *, seed, lower, upper):
要么
def __init__(self, length, *, seed, lower, upper):
在 RandomIterator
?