首页 > 编程语言 >Python中的魔法方法

Python中的魔法方法

时间:2024-01-14 23:22:56浏览次数:22  
标签:__ 调用 obj 定义 Python self 魔法 other 方法

  Python 中有很多魔法方法,它们以双下划线 __ 开头和结尾,用于实现类的特殊行为。以下是一些常用的魔法方法:

1. __init__(self, ...)

  初始化方法,用于创建对象并设置初始状态。

2. __str__(self)

  返回对象的非正式字符串表示形式,通过 str() 函数调用。

3. __repr__(self)

  返回对象的正式字符串表示形式,通过 repr() 函数调用。

4. __len__(self)

  返回对象的长度,通过内置函数 len() 调用。

5. __getitem__(self, key)

  定义对象的索引访问,通过 obj[key] 进行调用。

6. __setitem__(self, key, value)

  定义对象的索引赋值,通过 obj[key] = value 进行调用。

7. __delitem__(self, key)

  定义对象的索引删除,通过 del obj[key] 进行调用。

8. __iter__(self)

  返回一个迭代器对象,通过 iter(obj) 进行调用。

9. __next__(self)

  定义迭代器的下一个元素,通过 next(obj) 进行调用。

10. __contains__(self, item)

  定义成员关系测试,通过 item in obj 进行调用。

11. __eq__(self, other)

  定义对象相等性,通过 obj == other 进行调用。

12. __ne__(self, other)

  定义对象的不等性,通过 obj != other 进行调用。

13. __lt__(self, other)

  定义对象的小于关系,通过 obj < other 进行调用。

14. __le__(self, other)

  定义对象的小于等于关系,通过 obj <= other 进行调用。

15. __gt__(self, other)

  定义对象的大于关系,通过 obj > other 进行调用。

16. __ge__(self, other)

  定义对象的大于等于关系,通过 obj >= other 进行调用。

17. __call__(self, ...)

  定义对象的可调用行为,通过 obj() 进行调用。

18. __enter__(self), __exit__(self, exc_type, exc_value, traceback)

  用于定义上下文管理器,支持 with 语句。

19. __getattr__(self, name)

  在访问不存在的属性时调用。

20. __setattr__(self, name, value)

  在设置属性时调用。

21. __delattr__(self, name)

  在删除属性时调用。

  这只是一小部分魔法方法,Python 中还有其他许多用于实现特定功能的魔法方法。不同的魔法方法用于支持不同的操作和特性,根据需要选择实现适当的魔法方法。




NLP工程化

1.本公众号以对话系统为中心,专注于Python/C++/CUDA、ML/DL/RL和NLP/KG/DS/LLM领域的技术分享。
2.本公众号Roadmap可查看飞书文档:https://z0yrmerhgi8.feishu.cn/wiki/Zpewwe2T2iCQfwkSyMOcgwdInhf

NLP工程化(公众号)

NLP工程化(知识星球)

标签:__,调用,obj,定义,Python,self,魔法,other,方法
From: https://www.cnblogs.com/shengshengwang/p/17964436

相关文章

  • 使用 Python 和 Pygame 制作游戏:第六章到第八章
    第六章:贪吃虫原文:inventwithpython.com/pygame/chapter6.html译者:飞龙协议:CCBY-NC-SA4.0    如何玩贪吃虫贪吃虫是Nibbles的克隆。玩家开始控制一个不断在屏幕上移动的短蠕虫。玩家无法停止或减慢蠕虫,但他们可以控制它转向的方向。红苹果随机出现在屏幕上,玩家必......
  • 使用 Python 和 Pygame 制作游戏:第九章到第十章
    第九章:推星星原文:inventwithpython.com/pygame/chapter9.html译者:飞龙协议:CCBY-NC-SA4.0         如何玩推星星推星星是Sokoban或“箱子推动者”的克隆。玩家位于一个房间,里面有几颗星星。房间中的一些瓷砖精灵上有星星标记。玩家必须想办法将星星推到有星......
  • 案例学Python:filter()函数的用法,高级!
    大家好,这里是程序员晚枫,又来分享有用的Python知识了。Python之所以好用,是因为有大量用于科学计算的内置函数和第三方库。用好这些第三方库,可以显著提高我们编程的速度和质量。今天我们一起来看一下Python中一个重要的内置函数:filter。filter()是Python中的一个内置函数,用于......
  • 谓词在命题逻辑词中的展开方法
    title:谓词在命题逻辑词中的展开方法date:2022-10-29categories:数学mathjax:truetags:-离散数学-逻辑学前言一天,数学家觉得自己已受够了数学,于是他跑到消防队去宣布他想当消防员。消防队长说:「您看上去不错,可是我得先给您一个测试。」消防队长带数学家到消防队......
  • XAML中DataTemplate变量隐藏的解决方法
    title:XAML中DataTemplate变量隐藏的解决方法date:2023-11-13categories:编程tags:-C#-.NET-XAML前言微软的许多XAML框架,如WPF、UWP、WinUI3等,在DataTemplate下都会遇到变量隐藏(Variableshadowing)的问题。为了访问外部实例成员,经常需要写很多曲折的代码,但也没有办......
  • Python的控制语句和循环语句
    当我们使用Python语言编写程序时,根据一些实际业务需求,就需要改变语句流的执行顺序,这时候就离不开Python的控制流语句,来控制代码执行的逻辑,这就是我们下面要讲的控制流语句。1、条件控制if假设有a,b两个数字,用Python打印出他们的大小关系。a=3b=5ifa<b:print("a<b"......
  • Python与C++联合编程
    C++代码#编译指令#gcc-otest.so-shared-fPICtest.cg++-otest.so-shared-fPICtest.cc#forc++#include<iostream>usingnamespacestd;extern"C"{//forC++intfoo(inta,intb){cout<<"a:"<<a<<&qu......
  • 快乐学Python,数据分析之使用爬虫获取网页内容
    在上一篇文章中,我们了解了爬虫的原理以及要实现爬虫的三个主要步骤:下载网页-分析网页-保存数据。下面,我们就来看一下:如何使用Python下载网页。1、网页是什么?浏览器画网页的流程,是浏览器将用户输入的网址告诉网站的服务器,然后网站的服务器将网址对应的网页返回给浏览器,由浏览器将......
  • python面向对象之元类
    一、元类介绍什么是元类呢?一切源自于一句话:python中一切皆为对象。让我们先定义一个类,然后逐步分析classStanfordTeacher(object):school='Stanford'def__init__(self,name,age):self.name=nameself.age=agedefsay(self):prin......
  • python面向对象之单例模式的使用
    单例模式​ 单例模式(SingletonPattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。​ 比如,某个程序的配置信息存放在一个文件中,客户端通过一个Appconfig的类来读取配置......