Python 如何测试负数并引发ValueError?
我正在努力解决这个问题。我正在迭代地处理这个问题。此时,我有以下二进制类:Python 如何测试负数并引发ValueError?,python,Python,我正在努力解决这个问题。我正在迭代地处理这个问题。此时,我有以下二进制类: 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.valu
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异常的好策略是什么?如果
value
是int,那么value<0
就是测试值为负值。你应该已经知道了。也许您应该在文档集中查看教程
另一个问题是init方法混淆。它将输入转换为字符串,有时将字符串(返回?)转换为int。当init完成时,self.value应该具有所需类型的允许值。
如果self.value<0
?两个\uuuuuu init\uuuu
方法?谢谢Terry,我应该已经实现了value<0。在第二点上,我将把所有输入参数转换成一个字符串,因为我可以分割一个字符串来查找类似“0b”的内容。但我计划将值存储为int。您能建议一种更好的方法吗?