魔法方法

  魔法方法总是被双下划线包围,并且总能在适当的时候被调用。

1、构造和析构

   1)、__init__,一个类中需不需要__init__取决于“需求”;在实例化对象时,默认调用__init__方法;并且,不要试图在__init__方法中返回任何值,__init__只能返回None,否则会报错。

    2)、__new__方法,一个类在实例化对象时,第一个调用的方法是__new__(而不是__init__),语法__new__(cls[,...]),需要用到__new__方法的时候,当继承一个不可变类型,并且需要修改的时候。

  3)、__del(self)__,当对象将要被销毁的时候,__del__方法会自动调用。注意:垃圾回收机制,在没有任何变量取引用对象时,才会调用___del__去删除对象,而不是调用 del 删除对象时调用 __init__方法。

 1 >>> class C:
 2     def __init__(self):
 3         print("我是__init__方法,我被调用了")
 4     def __del__(self):
 5         print('我是__del__方法,我被调用了')
 6 
10 >>> c1 = C()
11 我是__init__方法,我被调用了  #
12 >>> c2 = c1
13 >>> c3 = c2
14 >>> del c1
15 >>> del c3
16 >>> del c2
17 我是__del__方法,我被调用了

 

 

2、算术运算

  1)、当对象进行相关的算术操作的时候,会自动触发对应的魔法方法进行运算,一旦重写这些魔法方法,python会根据重写后的魔法方法进行运算。

  2)  、在python中所谓的工厂函数是类对象。

  3)、在python中,对象是可以计算的。

  4)、python 提供了自定义对象的处理。通过对魔法方法的重写,达到自定义算术运算的效果。关于算数运算的常见魔法方法。

       

eg.

 

转载于:https://www.cnblogs.com/Chris-01/p/10597302.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值