Ich arbeite durch diese tutorial. Ich arbeite das iterativ durch. An diesem Punkt habe ich folgendes Binary Klasse:Wie für negative Zahl zu testen und ValueError zu erhöhen?
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)
def __int__(self):
if self.value[:1] == '-':
return ValueError
return int(self.value)
Ich laufe durch eine Reihe von Tests pytest verwenden, einschließlich:
def __int__(self):
> if self.value[:1] == '-':
E TypeError: 'int' object is not subscriptable
Ich verstehe den Fehler, da ich den Parameter als int gespeichert . Was ist eine gute Strategie, um auf eine negative Zahl zu testen und in diesem Fall eine valueerror-Ausnahme auszulösen?
'wenn self.value <0'? –
Zwei '__init__' Methoden? – dm295
Einer ist __int__' – user61629