Python第十四周面向对象编程5

本文介绍了Python面向对象编程中的特殊方法,包括_getitem_、_setitem_、_delitem_,以及_call_与callable的关系。接着讨论了_doc_和_dict_的作用,特别提到了__slots__在优化内存占用上的应用。此外,文章还详细讲解了__len__方法,说明了内置函数len()在处理自定义类实例时的限制。最后,探讨了生成器和迭代器,阐述了生成器函数如何通过yield关键字生成序列,并提供了查看生成器元素的方法。
摘要由CSDN通过智能技术生成
  1. _new_
当使用"类名([实参])"创建实例对象时。Python解释器的主要处理过程包括两大步:
1.调用特殊方法__new__()创建实例对象
  首先会查找该类对象是否实现了特殊方法__new__().
  如果没有实现。则去其父类中依次查找,直到类对象object。
2.调用特殊方法__init__()对创建的实例对象进行初始化
  __new__()返回的实例对象会作为实参被自动传递给__init__()的第一个形参self。

在这里插入图片描述在这里插入图片描述20.
_getitem_()
_setitem_()
_delitem_()

对于自定义类对象的实例对象,在默认情况下,是不能像列表和字典那样使用中括号语法来操作数据的。
如果想让自定义类对象的实例对象可以像列表和字典那样,使用中括号语法来操作数据,必须在自定义类对象中实现以下特殊方法:
1. __getitem__(self,key)
    当执行操作obj[key]时,会自动调用该特殊方法。
2. __setitem__(self,key,value)
    当执行操作obj[key] = value时,会自动调用该特殊方法。
3. __delitem__(self,key)
    当执行操作del obj[key]时,会自动调用该特殊函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值