python笔记:类方法之 __call__ ,__repr__,__eq__, __gt__

__call__

  • 这个方法允许一个类的实例像一个函数一样被调用
  • 例如,如果类 MyClass 定义了 __call__ 方法,那么可以创建一个 MyClass 的实例,并像调用函数一样调用这个实例:
class MyClass:
    def __call__(self, *args, **kwargs):
        print("MyClass instance called!")

obj = MyClass()
obj()  
#MyClass instance called!

__repr__

  • 这个方法用于返回对象的表示形式,通常用于在调试或开发过程中打印对象
  • 其目的是返回一个描述对象的字符串
class MyClass:
    def __repr__(self):
        return "MyClass()"

obj = MyClass()
print(obj)  
#MyClass()

3 __eq__

  • 用于定义两个对象的等值比较行为
    • 即当使用 == 操作符比较两个对象时,Python 会调用这个方法
  • 如果没有实现 __eq__,对象比较将默认比较内存地址(即是否为同一个对象)
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __eq__(self, other):
        if isinstance(other, Point):
            return self.x == other.x and self.y == other.y
        return False

'''
在这个示例中,两个 Point 对象相等当且仅当它们的 x 和 y 坐标都相同
'''

4 __gt__

__gt__ 方法用于定义一个对象是否大于另一个对象的比较操作,即当使用 > 操作符时

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __gt__(self, other):
        if isinstance(other, Point):
            return (self.x**2 + self.y**2) > (other.x**2 + other.y**2)
        return NotImplemented
'''
Point 对象的比较是基于它们到原点的距离。如果当前点到原点的距离大于另一个点的距离,则返回 True
'''

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值