语法
is:
比较两个对象是否为同一个
==:
本质调用__eq__
用来比较两个对象内容是否一致
运算符重载问题:
== -> __eq__
> -> __gt__
+ -> __add__
print(1 == 2)
print('123' == '321')
class Dog:
def __init__(self,name,age):
self.name = name
self.age = age
def __eq__(self, other):
return self.name == other.name and self.age == other.age
# def __add__(self, other):
# print('__add__被调用')
# return self.age + other.age
# def __gt__(self, other):
# return True
dog1 = Dog('大壮',3)
dog2 = Dog('大壮',3)
print(dog1 == dog2)
print(dog1 is dog2)
# print(dog1 + dog2)
print(dir(object))
# print(dog1 > dog2)
运行后
False
False
True
False
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']