0
Я создал класс, и я уточнил функцию добавления, но по какой-то причине он работает неправильно. Это то, что у меня есть:iadd в классе python
def __iadd__(self,thing):
try:
tester=True
for y in thing:
if type(y) != type('f'):
tester=False
for j in thing:
self.listt.append(j)
return self
except(tester==False):
return ValueError
Всякий раз, когда я делаю:
f=class('ab')
f += [4]
предполагается вернуть ValueError
, потому что я добавляю что-то, что не является строкой, но по какой-то причине он прилагая Int хотя и не предполагалось.
Вы используете неправильный блок 'try/except'. если вы хотите, чтобы он попал в блок исключений, вам нужно «поднять» ошибку –
all 'except (tester == False):' собирается дать вам, это 'catching классы, которые не наследуются от BaseException, недопустимы 'если вы когда-нибудь создадите исключение – njzk2