python魔术方法是什么_Python中的魔术方法

什么是魔术方法?

在Python中,所有用"__"包起来的方法,都称为【魔术方法】。

魔术方法一般是为了让显示器调用的,你自己并不需要调用它们。

__init__:初始化函数

这个方法主要是定义了对象的初始化操作。当我们新建一个对象 x=someclass() 的时候,__new__先创建类并返回类的实例,然后自动调用__init__来初始化函数的值。这两个共同构成了【构造函数】。在对象生命周期调用结束时,__del__方法会被调用,可以将__del__理解为“构析函数”。

__str__与__repr__ 都是改变对象的字符串显示。

如果类中定义了这个方法,当打印这个类的某个实例对象时,实际上就是在调用这个方法,打印出来的结果就是该方法所返回的值。

classPersonInfo:

def __init__(self, name, age):

self.name=name

self.age=age

def __str__(self):return f"{self.name}的个人信息"one_person= PersonInfo("星星", 20)

print(one_person)

print(str(one_person))

运行的结果是:

星星的个人信息

星星的个人信息

我们看到,print(one_person) 与 print(str(one_person)) 结果是一致的。其实,str(),当str(one_person)的时候,也就是在调用对象one_person的__str__方法。

当类中没有定义这个方法的时候,它们俩都会自动寻找__repr__这个魔术方法。

__getitem__(self,key):返回键对应的值。

__setitem__(self,key,value):设置给定键的值

__delitem__(self,key):删除给定键对应的元素。

__len__():返回元素的数量

classPersonInfo:def __init__(self, name, age):print("调用__init__")

self.name=name

self.age=age

self.one_dict={}def __setitem__(self, key, value):print("调用__setitem__")try:

self.one_dict[key]=valueexcept:print("setitem有异常啊")def __getitem__(self, item):print("调用__getitem__")try:returnself.one_dict[item]except:print("getitem有异常啊")def __len__(self):return len(self.one_dict) + 3one_person= PersonInfo("星星", 20)

one_person["school"] = "振华中学"one_person["hobby"] = "学习"one_person["ablilty"] = "编程"

print(one_person["school"])print(one_person[1])print(len(one_person))

运行的结果:

调用__init__

调用__setitem__

调用__setitem__

调用__setitem__

调用__getitem__

振华中学

调用__getitem__

getitem有异常啊

None

6

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值