TypeError: argument of type 'type' is not iterable
from file import x
a = x
if i in a:
dosomething
file.py:
class x:
def __init__(self):
self.q = []
def __contains__(self,item):
return item in self.q
def __iter__(self):
for i in self.q:
yield i
Появляется ошибка: TypeError: argument of type 'type' is not iterable Что я делаю не так и как сделать верно?
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Работу нужно делать не с классом (типом), а с объектом. Для этого нужно у класса вызвать конструктор через ().
Попробуйте:
class X:
def __init__(self):
self.q = []
def __contains__(self,item):
return item in self.q
def __iter__(self):
for i in self.q:
yield i
a = X()
a.q.append(1)
a.q.append(2)
a.q += [3, 4, 5]
if 5 in a:
print('5!')
for i in a:
print(i)
PS.
Классы принято называть с верхнего регистра.