Python高级技巧:深入理解Python魔法方法

admin12个月前笔记141


image.png


在 Python 中,魔法方法是指那些以双下划线开头和结尾的特殊方法。它们是 Python 的内置方法,对应于 Python 对象的各种运算符。通过实现这些魔法方法,我们可以改变 Python 对象的行为。这篇文章将深入探讨 Python 的一些魔法方法,并通过示例展示如何使用它们。

一、构造和初始化

__new__ 和 __init__ 是 Python 对象生命周期的开始。__new__ 方法是在一个对象实例化的时候所调用的第一个方法,在调用 __init__ 初始化前,先调用 __new__

image.png

二、字符串表示

__str__ 和 __repr__ 都是用于显示的魔法方法。__str__ 是友好易读的方式呈现,而 __repr__ 是准确、无歧义地表达出来,主要供开发和调试时使用。

image.png

三、算术运算符

魔法方法还可以用来定义对象的算术运算行为,例如 __add____sub____mul__ 等。

image.png

四、比较运算符

比较运算符的魔法方法包括 __lt____le____eq____ne____gt____ge__ 等。

image.png

五、属性访问

当我们试图访问一个对象的属性时,__getattr____setattr____delattr__ 和 __getattribute__ 魔法方法就会被调用。__getattribute__ 方法是用于获取一个属性的值,而 __setattr__ 是在我们试图设置一个属性值时被调用。

image.png

六、上下文管理器

上下文管理器是通过 __enter__ 和 __exit__ 魔法方法实现的,它们通常在 with 语句中使用。

image.png

在这个例子中,__enter__ 方法打开文件并返回,__exit__ 方法在离开 with 块时被调用,负责关闭文件。

七、结论

Python 的魔法方法为我们提供了改变对象行为的强大工具,让我们能够以符合 Python 风格的方式去操作和处理对象。同时,理解并掌握这些魔法方法也是成为高级 Python 程序员的必经之路。



相关文章

十分钟学会微调大语言模型

十分钟学会微调大语言模型

LoRA是什么LoRA之于大语言模型,就像设计模式中的装饰器模式:装饰器模式允许向一个对象添加新的功能,而不改变其结构。具体来说,装饰器模式会创建一个装饰类,用来包装原有的类,并在保持原有类方法签名完...

yum工具对软件包安装,删除,更新介绍

yum工具对软件包安装,删除,更新介绍

一. 概述软件包通常会依赖其他的包,为了前者能够正常运行,补依赖的包必须提前安装在系统中。PMS工具将会检测这些依赖关系关系,并在安装需要的包之前,先安装好所有额外的软件包。PMS对于不同发行版,没有...

用一个实例讲解rename命令中正则表达式的使用

rename命令用字符串替换的方式批量改变文件名。今天以一个例子来具体写一下自己遇到的问题并且解决的例子。希望对大家有帮助。格式如下:rename 原字符串  目标字符串  文件(...

Linux下命令行如何KILL掉一个进程

Linux下命令行如何KILL掉一个进程

Linux 的命令行里面有用来停止正在运行的进程的所有所需工具想像一下:你打开了一个程序(可能来自于你的桌面菜单或者命令行),然后开始使用这个程序,没想到程序会锁死、停止运行、或者意外死机。...

Ubuntu中安装OpenSSL

Ubuntu中安装OpenSSL

一、前期准备1.1 压缩包下载在安装openssl之前,我们需要下载对应的压缩包https://www.openssl.org/source/openssl-3.0.1.tar.gz此压缩包可以选择w...

使用 cron 定时任务的小技巧

使用 cron 定时任务的小技巧

在计算机上让任务按照有规律并且可预测的时间表运行很重要。作为人类,我们有时会因为分心、脑子里想太多,或是度假而记不住要做的事情。计算机真的很擅长按计划做事,但在计算机采取行动之前,人类必须对计算机进行...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。