我正在完成这个tutorial。我正在迭代地完成这个工作。此时我有以下二进制类:
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)
我正在使用pytest运行一系列测试,包括:
def __int__(self):
> if self.value[:1] == '-':
E TypeError: 'int' object is not subscriptable
我理解错误,因为我将参数保存为int。在这种情况下,测试负数并提出valueerror异常的好策略是什么?
答案 0 :(得分:1)
如果value
是int,则value < 0
是值为负的测试。你应该已经知道了。也许您应该查看文档集中的教程。
另一个问题是您的 init 方法很混乱。它将输入转换为字符串,有时将字符串(后退?)转换为int。当 init 完成时,self.value应该具有所需类型的允许值。