Я работаю через это tutorial. Я работаю над этим итеративно. На данный момент у меня есть следующий класс Binary:ТипError: __init __() должен возвращать None, not 'int'
class Binary:
def __init__(self,value):
self.value = str(value)
if self.value[:2] == '0b':
print('a binary!')
self.value= int(self.value, base=2)
elif self.value[:2] == '0x':
print('a hex!')
self.value= int(self.value, base=16)
else:
print(self.value)
return int(self.value)
Я бегу через набор тестов с использованием pytest, в том числе:
def test_binary_init_hex():
binary = Binary(0x6)
assert int(binary) == 6
E TypeError: int() argument must be a string or a number, not 'Binary'
я задал вопрос об этом TypeError: int() argument must be a string or a number, not 'Binary' и на основе ответа изменил код так, как указано выше. Теперь, когда я запускаю набор тестов с использованием pytest, все тесты неудачу и ошибка:
TypeError: __init__() should return None, not 'int'
Почему существует проблема?
Этот ответ не возвращает 'int' из' __init__'. Он определяет метод '__int__', используемый для числового преобразования. –
'__init __()' используется для инициализации объектов, поэтому не используйте его таким образом, но используйте отдельный метод для этой более поздней цели. –
Почему это даже класс, а не только функция? – iAdjunct