我正在努力验证某个数据,在这种情况下,strin g'5'应该通过某个验证失败,因为它需要为5(一个int)
print ">>>>", value
bad_type = type(value).__name__
raise TypeError("expected numeric type for {0} but got '{1}'".format(column,bad_type))
打印:
.>>>> five
...
bad_type = type(value).__name__
TypeError: 'str' object is not callable
但是我可以从命令行执行此操作:
python -c "print type('five').__name__"
打印
str
我在这里做错了什么?我想打印传递的值的类型,但我的自定义验证失败。
答案 0 :(得分:1)
你确定你没有在某处过度骑过type
吗?
此外,这不是用于类型检查的Pythonic方式 - 而是使用:
try:
my_int = int(value)
except (ValueError, TypeError) as e:
# raise something