判断相等方法有好几个:== 、is 、 isinstance 、issubclass 、operator 模块。
== :两个对象内容是否相等。
>>> a = [22,44] >>> b = [22,44] >>> a==b True >>> c = 1 >>> d = 2 >>> c == d False
is :对象占用的内存地址是否一样 ,通过id方法可以知道内存地址是否一样。
>>> a = (1,2,3) >>> b = a >>> a is b True >>> c = (1,2,3) >>> d = (1,2,3) >>> c is d False >>>
isinstance:isinstance
(object, classinfo) 如果对象参数是classinfo参数的一个实例,或者是一个(直接的、间接的或虚拟的)子类,则返回true,否则false。classinfo可能是一类对象的元组,在这种情况下,classinfo中的每个条目都会被检查。
>>> isinstance(a,int) True >>> isinstance(a,float) False
issubclass :issubclass
(class, classinfo) 如果class是classinfo的子类(直接、间接或虚拟),则返回true,否则false。classinfo可能是一类对象的元组,在这种情况下,classinfo中的每个条目都会被检查。
>>> issubclass(int,float) False >>> issubclass(int,object) True >>>
operator
:https://docs.python.org/3/library/2to3.html?highlight=operator#2to3fixer-operator