python的魔法函数

一、介绍

在Python中,魔法函数是以双下划线__开头和结尾的特殊函数。它们在类定义中用于实现特定的行为,例如运算符重载、属性访问、迭代等。

以下是一些常见的Python魔法函数:

  1. __init__: 这是一个特殊的构造函数,在创建类的实例时自动调用,用于初始化对象的属性。

  2. __str__ 和 __repr__: 这两个函数用于定义对象的字符串表示形式。__str__ 返回可读性较好的字符串,而 __repr__ 返回一个准确的表示对象的字符串,通常可以用于重新创建该对象。

  3. __len__: 这个函数用于返回对象的长度,可以通过内置的 len() 函数调用。

  4. __getitem__ 和 __setitem__: 这两个函数用于实现对象的索引访问和赋值操作,例如通过下标访问列表中的元素。

  5. __iter__ 和 __next__: 这两个函数用于实现对象的迭代功能,使对象可以使用 for 循环进行遍历。

  6. __call__: 这个函数使得对象可以像函数一样被调用,可以通过在对象后面加括号来调用它。

二、使用

注:__init__和__new__的区别:

在一般情况下,我们在构造类时调用的是__init__,但实际上第一个被调用的方法是__new__。

class Bar:def __new__(cls, num):print("use __new__ method")return super(Bar, cls).__new__(cls)def __init__(self, num):print("use __init__ method")self.num = num
bar = Bar(1)

 

 

参考:

一文读懂什么是Python魔法函数_pytorch 魔法函数_吃花椒的喵醬的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/27874.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAP ALV 点击单元格跳转事务代码

实现效果:销售订单明细表,双击单元格进入 va03 事务代码 1.alv 显示报表调用函数 i_callback_user_command 加上方法名 CALL FUNCTION REUSE_ALV_GRID_DISPLAY_LVCEXPORTINGi_callback_program sy-repid * i_callback_pf_status_set FRM…

Linux·gdb调试命令和使用方法

基本命令 调试未运行的程序 $ gdb helloworld Reading symbols from helloWorld...(no debugging symbols found)...done. 如果没有调试信息,会提示no debugging symbols found。 如果是下面的提示: Reading symbols from helloWorld...done. 则可以…

redis工具使用

一、工具 官网下载:https://redisdesktop.com/download 二、安装 自己选择路径,点击install安装 安装成功后点击finish。之后就可以打开软件进行操作了。 三、简单使用 1.点击Connect to Redis Server,新建一个redis连接 2.Name&#…

Ceph 分布式应用2

一、创建 CephFS 文件系统 MDS 接口 1、服务端操作 1)在管理节点创建 mds 服务 [rootadmin ceph]# cd /etc/ceph [rootadmin ceph]# ceph-deploy mds create node01 node02 node03 [ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.c…

22.代理模式

代理模式 二十三种设计模式中的一种,属于结构型模式。它的作用就是通过提供一个代理类,在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用。让不属于目标方法核心逻辑的代码从目标方法中剥离出来——解耦…

LDAP Tool Box Self Service Password

手册地址:https://self-service-password.readthedocs.io/en/latest/安装要求: Apache or another web server php (>7.4) php-curl (haveibeenpwned api) php-filter php-gd (captcha) php-ldap php-mbstring (reset mail) php-openssl (token cryp…

HCIP第十二天

题目 拓扑图 sw1、sw2、sw3分别创建VLAN、划分接口,配置干道 VLAN间路由 所有PC通过DHCP获取IP地址 PC1/3可以正常访问PC2/4/5/6

【AI底层逻辑】——篇章5(上):机器学习算法之回归分类

目录 引入 一、何为机器学习 1、定规则和学规则 2、算法的定义 二、机器学习算法 1、常见学习方法 2、回归 3、分类 续下篇... 往期精彩: 引入 计算机发明初,专家通过将专业知识和经验梳理成规则输入计算机程序,但是这样跟不上知识…

基于深度学习的高精度农作物机器与行人目标检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度农作物机器与行人目标检测系统可用于日常生活中或野外来检测与定位农作物机器与行人目标,利用深度学习算法可实现图片、视频、摄像头等方式的农作物机器与行人目标检测识别,另外支持结果可视化与图片或视频检测结果…

Java Jsp+Json+阿贾克斯

0目录 1.补充阿贾克斯 2.实战(加入Json) 1.补充阿贾克斯 创建工程,加入jason依赖和数据库 新建数据库,表和实体类 先新建一个查询方法 FruitServlet 修改Web.xml 加入Js包(版本1.9.1) …

Unity LayerMask原理和判断包含关系

在本文之前,请先了解全部位操作的含义,否则继续下去会很困难。 本质:32位整数的每一位表示一个层 LayerMask本质上是一个32位的整数(Int32 ,int),每个位代表一个图层,因此LayerMask最多可以表示32个图层(0…

Python_pymysql_与mysql交互

目录 基础功能 简单封装 源码等资料获取方法 基础功能 import pymysql from pymysql.cursors import DictCursor # 导入字典类型的游标对象# 连接数据库 db pymysql.connect(host192.168.3.109, # 数据库IP地址port3306, # 数据库端口号userroot, …