面向对象(五)-魔法方法

魔法方法

定义:以双下划线开头和结尾的方法,这些方法不允许开发者自己定义
特点:不需要显式的调用,每一个魔法方法都具有特定的触发时机

目前说过的魔法方法

  • __init__() :对象创建完成后,对对象初始化时会调用
  • __new__() :创建对象的时候,会调用
  • __str__() :直接打印某个对象时候,会调用
  • __repr__() :直接打印某个对象时候,会调用

1 构造和初始化方法

2 比较运算符

3 算术运算符

4 复合运算符

5、对象打印

6、其他方法

class A: 

      def __call__(self):
            print("对象被调用") 
            return 10 

      def __del__(self): 
            print("对象被销毁") 

# 情况1 
a = A() 

del a #删除对象a,此时没有其他对象引用,会自动调用__del__() 

# 情况2 
a = A() 
a2 = a # 赋值 

del a # 删除对象a,此时还有a2对象引用,不会自动调用__del__() 

# 情况3 
a = A()
a2 = A() 
del a 
print('================')

 """ 结果: 
对象被销毁 ===================== 对象被销毁 """ 

# 情况4 
a = A() 
print(a()) # 调用__call__ 10
posted @ 2020-12-30 09:31  小杜打醋尢买布  阅读(78)  评论(0编辑  收藏  举报