学习-Python面向对象之魔术方法

第1关:学习-Python面向对象之魔术方法

任务描述
本关任务:给定了一个类 Test,并在该类中重写了部分魔法方法,请通过实例化类或者访问属性等操作来调用这些魔法方法。

相关知识
本关介绍的是 Python 中常用的魔法方法,完成本关任务将使用其中几个魔法方法。

魔法方法
在 Pyhton 中,我们经常可以看到以双下滑线__包裹起来的方法,最常见的就是__init__,这些方法被称为魔法方法或者特殊方法,这些方法可以给 Python 的类提供特殊功能。我们主要介绍以下几个魔法方法:

init:构造方法,在实例对象创建完成后被调用的,然后设置对象属性的一些初始值。

new: 在实例创建之前被调用的。因为它的任务就是创建实例然后返回该实例,是个静态方法。

class TestClass:
def init(self):
print(“调用__init__”)
def new(cls, *args, **kwargs): # 比构造方法更早调用
print(“调用__new__”)
return object.new(cls) # 返回当前类的实例
t = TestClass()
执行结果:

调用__new__
调用__init__
new__决定是否要使用当前的__init__方法,因为__new__可以调用其他类的构造方法或者直接返回别的实例对象来作为本类的实例,如果__new__没有返回实例对象,则__in

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ssaty.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值