语法
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__']
本文深入探讨了Python中对象比较的概念,包括'is'和'=='的区别,以及如何通过定义特殊方法如__eq__来实现运算符的重载。通过实例展示了如何在自定义类中使用这些特性。
1128

被折叠的 条评论
为什么被折叠?



