python中的魔法方法

2023-12-16 07:37:58
class A:
    def __new__(cls):
        print("__new__")
        return super().__new__(cls)

    def __init__(self):
        print("__init__")

o = A()

? ? ? ? new和init这两个比较容易搞混,他们的主要区别就是:new是一个class建立object的过程,init是有了这个object之后给object初始化的过程,new是有返回值的,init是没有返回值的。如果我们在创建object的过程中传入了一些参数,这些参数既会传入的new中也会传入到init中,在实际应用中new函数用的比较少(一般只有单例的情况修下才用new)。

class date:
  def __init__(self, year, month, date):
    self.year = year
    self.month = month
    self,date = date

  def __eq__(self,other):
    return(self.year == other.year  and
           self.month == other.month and
           self.date == other.date)


x = date(2023,12,11)
y = date(2023,12,11)

print(x == y)

????????python中的运算符重载,当我们想要比较两个自己定义的class时,需要对运算符进行重载。

文章来源:https://blog.csdn.net/m0_54146002/article/details/134919934
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。