我有以下课程:
class C3DPoint(object):
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
# Other methods
我想确定,如果有人设置v3dpoint.x = <sth>
,则在vale不是字符串的情况下会抛出错误。
这怎么办?
答案 0 :(得分:4)
良好的Python设计避免了显式的类型检查:“如果像鸭子一样嘎嘎叫,那就是鸭子...”。因此,您应该首先尝试在课堂外或根本不进行数据验证。
话虽如此,执行检查的一种方法是重新定义bool
as described here:
IsOpen
答案 1 :(得分:1)
您可以在Python中键入函数参数,前提是您使用的是当前版本,当前不确定是哪个PEP实现了它。
def __init__(x: int, y: int , z: int):
但是,这不会引发TypeErrors,因为我们都同意成年人,因此您可以进行类型检查。
if not (isinstance x, int):
# throw Error
答案 2 :(得分:0)
您可以这样做:
variable_name: type = value
答案 3 :(得分:0)
使用try / except:
try:
int(a)
except Exception as e:
print "That's not an int"