在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Python开发的魔法方法总结:魔法方法就是可以给你的类增加魔力的特殊方法, __init__ 构造器,__new__才是实例化对象调用的第一个方法,__call__ 允许一个类的实例像函数一样被调用。
魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被Python 所调用,你可以定义自己想要的行为,而这一切都是自动发生的。 它们经常是两个下划线包围来命名的(比如 __init__, __lt__),Python 的魔法方法是非常强大的,所以了解其使用方法也 变得尤为重要!
__init__ 构造器,当一个实例被创建的时候初始化的方法。但是它并 不是实例化调用的第一个方法。
__new__才是实例化对象调用的第一个方法,它只取下 cls 参数,并 把 其他参数传给 __init__。 __new__很少使用,但是也有它适合的场景,尤其是当类继承自一个像元组或者字符串这样不经常改变的类型的时候。
__call__ 允许一个类的实例像函数一样被调用。 __getitem__ 定义获取容器中指定元素的行为,相当于 self[key] 。 __getattr__ 定义当用户试图访问一个不存在属性的时候的行为 。 __setattr__ 定义当一个属性被设置的时候的行为。 __getattribute__ 定义当一个属性被访问的时候的行为 。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Python开发生成器和迭代器的区别?
Python开发生成器和迭代器的区别?迭代器是一个更抽象的概念,任何对象;迭代器对象,它在容器中逐个访问容器内元素,next()也是 python 的内置函数。
7334
2019-07-01 15:43:20
推荐十个Python图像处理工具
今天的世界充满了各种各样的数据,而图像是这些数据的重要组成部分。但当我们在使用它们之前,必须对这些数字图像进行处理、分析和操作,以提高其质量甚至提取一些可以使用的信息。本文将推荐十个Python图像处理工具。
7339
2019-07-09 14:27:16
怎样解决数据库高并发的问题
解决数据库高并发使用缓存式的Web应用程序架构、增加Redis缓存数据库、增加数据库索引、页面静态化、使用存储过程、MySQL主从读写分离、分表分库、负载均衡集群。
10047
2019-07-16 16:20:35
现在学Python怎么样?还来得及吗?
现在学Python怎么样?还来得及吗?有这样疑问的小伙伴一定是对Python还不够了解,同时还缺乏学习的决心。目前Python在IT培训中掀起了一股学习的热潮。除了Python自身的优势外,还因为它在各行各业的广泛应用。既然学Python有这么广阔的就业前景,那么什么时候学习都不晚。
5401
2019-10-07 19:46:51
Python常用框架Flask介绍
Flask一直被称为是Python中轻量级的可定制的框架。其核心简单,相比其他框架更加灵活轻便,也更容易掌握。下面我们一起详细的了解一下Flask框架吧。
5239
2020-08-24 11:51:27