标签:ar os for on 数据 bs ad ef as
isinstance说明如下: isinstance(object, class-or-type-or-tuple) -> bool Return whether an object is an instance of a class or of a subclass thereof. With a type as second argument, return whether that is the object‘s type. The form using a tuple, isinstance(x, (A, B, ...)), is a shortcut for isinstance(x, A) or isinstance(x, B) or ... (etc.).其第一个参数为对象,第二个为类型名或类型名的一个列表。其返回值为布尔型。 若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中类型名之一相同即返回True。传入了不恰当的参数时,内置函数
abs
会检查出参数错误,而我们定义的my_abs
没有参数检查,所以,这个函数定义不够完善。让我们修改一下
my_abs
的定义,对参数类型做检查,只允许整数和浮点数类型的参数。数据类型检查可以用内置函数isinstance
实现:def my_abs(x): if not isinstance(x, (int, float)): raise TypeError(‘bad operand type‘) if x >= 0: return x else: return -x
添加了参数检查后,如果传入错误的参数类型,函数就可以抛出一个错误:
>>> my_abs(‘A‘) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in my_abs TypeError: bad operand type
标签:ar os for on 数据 bs ad ef as
原文地址:http://www.cnblogs.com/misha/p/4171914.html