内置函数id()可返回一个对象的标识,返回值为整数。这个整数通常对应于该对象在内存中的位置。

is运算符用于比较两个对象的标识,依次判断两个对象是否是同一个。(==用来判断值是否相等)

内置函数type()则返回该对象的类型。

对象的类型本身也是一个对象,称为对象的类,并且该对象的类时唯一的,所以可以用type()查询类型,然后用is来判断是否是指定类型。

实例:

mark=[]
if type(mark) is list:
    print("mark is list")

结果:

mark is list

上面虽然可以检查类型,但坚检查最佳的方式是内置函数:isinstance(objecy,type),因为isinstance()函数能够辨别继承。

实例:

mark=[]
if isinstance(mark,list):
    print("mark is list")

结果:

mark is list

注意:尽管可以在程序中增加类型检查,但过多的检查会影响性能,而且,程序不可能始终定义完全符合继承层次结构的对象。例如,如果上面的mark是从拥有于list相同编程接口但并不是内置list直接继承而来的对象时,判断将不起作用。

给程序添加类型检查的两亿个方法时定义抽象基类(abstract base class),下面会讲到。

results matching ""

    No results matching ""