python 面对对象 类 魔法方法

魔法方法

一、__init__

构造函数,可以理解为初始化

触发条件:在实例化的时候就会触发

class People():def __init__(self, name):print('init被执行')self.name = namedef eat(self):print(f'{self.name}要吃饭')a = People('张三')
a.eat()             # init被执行   张三要吃饭b = People('李四')
b.eat()             # init被执行   李四要吃饭

二、__del__

析构函数,回收内存空间,也可以理解为释放内存空间

触发条件:del

class People():def __del__(self):print('del被执行')a = People()
del a           # del被执行

三、__add__

触发条件:x+y

class jisuan():def __init__(self, length, width):self.length = lengthself.width = widthdef __add__(self, other):l = self.length + other.lengthw = self.width + other.width     # 不管怎么变动,self接收前面一个,other接收后面一个print(l)print(w)x = jisuan(1, 2)
y = jisuan(3, 4)
x+y               # 触发后 4  6

四、 __call__

实例化后,像函数一样调用

触发条件:实例化()

class People():def __call__(self):print('call被执行')a = People()
a()             # call被执行

五、__str__   , __repr__

  1. __str__触发条件:print打印实例化对象变量时触发,在非交互式模式下,如果二者同时存在那么触发str
  2. __repr__触发条件:print打印实例化对象变量时触发,在交互式模式下,如果二者同时存在,如果不使用print,那么触发repr
非交互式环境下
class People():def __str__(self):return 'str被执行'def __repr__(self):return 'repr被执行'a = People()
print(a)          #  输出  str被执行
交互式环境下

六、__new__

创建实例对象,在__init__的前面,更早触发

cls:类本身

object:超类,可以理解为所有类的祖先

class People():def __init__(self, name):print('init被触发')self.name = namedef __new__(cls, *args, **kwargs):print('new被触发')return object.__new__(cls)   # 通过object.__new__创建cls(这个cls也就是等于People这个类)的实例对象a = People('张三')
print(a.name)# new被触发
# init被触发
# 张三

类的其他方法

一、__dict__

查看全部属性

class People():sex = '男'def __init__(self, name):self.name = nameself.age = 18a = People('张三')
print(a.__dict__)           # {'name': '张三', 'age': 18}

二、__class__

查看类型

class People():passa = People()
print(a.__class__)         # <class '__main__.People'>

三、__doc__

查看对象信息

class People():"""这个类是 People"""a = People()
print(a.__doc__)# 这个类是 People

四、__bases__

查看父类

class People():passprint(People.__bases__)      # (<class 'object'>,)

五、__mro__

查看继承顺序

class People():passprint(People.__mro__)    # (<class '__main__.People'>, <class 'object'>)

其他魔法方法

当然,除了以上所说的魔法方法,还有一些其他魔法方法的

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

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

相关文章

海外抖音TK自动挂机,手机全自动挂机,每天轻松搞2张

海外抖音TK自动挂机&#xff0c;手机全自动挂机&#xff0c;每天轻松搞2张 课程获取方式&#xff1a; https://zzmbk.com/

整理好了!2024年最常见 20 道 Redis面试题(七)

上一篇地址&#xff1a;整理好了&#xff01;2024年最常见 20 道 Redis面试题&#xff08;六&#xff09;-CSDN博客 十三、如何保证 Redis 的高可用性&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的高性能键值对数据库&#xff0c;它通常被…

揭秘Markdown:轻松掌握基础语法,让你的写作更高效、优雅!

文章目录 前言1.标题1.1 使用 和 - 标记一级和二级标题1.2 使用 # 号标记 2.段落格式2.1 字体2.2 分割线2.3 删除线2.4 下划线2.5 脚注 3.列表3.1 无序列表3.2 有序列表3.3 列表嵌套 4.区块4.1 区块中使用列表4.2 列表中使用区块 5.代码代码区块 6.链接7.图片8.表格9.高级技巧…

mysql实战——XtraBackup二进制包安装

1、二进制包下载网站 Software Downloads - Percona 2、安装xtrabackup 解压安装包 tar xvf percona-xtrabackup-8.0.27-19-Linux-x86_64.glibc2.17.tar.gz -C /usr/local 进入目录 cd percona-xtrabackup-8.0.27-19-Linux-x86_64.glibc2.17/ 安装依赖 yum install perl-Dig…

正运动视觉与运动一体机小课堂----三分钟系列

【视觉运控一体机小课堂】三分钟搭建机器视觉开发环境-正运动技术 (zmotion.com.cn) 【视觉运控一体机小课堂】三分钟读取本地图像-正运动技术 (zmotion.com.cn) 【视觉运控一体机小课堂】三分钟实现相机采集和图像保存-正运动技术 (zmotion.com.cn) 【视觉运控一体机小课堂…

java里面反射和动态代理的基础知识

反射 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的工具&#xff0c;它允许程序在运行时检查和修改类、接口、字段和方法等元数据的行为。通过反射&#xff0c;你可以加载类、实例化对象、调用方法、获取和修改字段的值等&#xff0c;而无需在编译…

Fortran: stdlib标准库

Fortran 标准库 stdlib_logger,stdlib_error, stdlib_sorting,stdlib_optval模块挺好用 封装 stdlib_logger和stdlib_error: M_logger.F90 module M_loggeruse stdlib_loggeruse stdlib_error containssubroutine info(message,module,procedure)character(len*),intent(in):…

2024.5.25期末测试总结

成绩&#xff1a; 配置&#xff1a; 可能与实际有些出入 题目&#xff1a; 第一题&#xff1a; 代码思路&#xff1a; 一道模拟题&#xff0c;按照公式计算出sumpow(2,i)&#xff0c;判断sum>H&#xff0c;输出 代码&#xff1a; #include<bits/stdc.h> using name…

Java—内部类

Java—内部类 一、内部类二、应用特点三、分类3.1、普通内部类&#xff1a;直接将一个类的定义放在另外一个类的类体中3.2、静态内部类3.3、局部内部类 一、内部类 一个类的定义出现在另外一个类&#xff0c;那么这个出现的类就叫内部类(Inner)。 内部类所在的类叫做外部类(Ou…

Java匿名内部类的使用

演示匿名内部类的使用&#xff0c;很重要 package com.shedu.Inner;/*** 演示匿名内部类的使用*/ public class AnonymousInnerClass {//外部其他类public static void main(String[] args) {Outer04 outer04 new Outer04();outer04.method();} }class Outer04{//外部类priva…

在线软件包管理

1.APT工作原理 APT&#xff08;Advanced Packaging Tool&#xff09;是Debian系列Linux操作系统中广泛使用的包管理工具&#xff0c;它为用户提供了从软件仓库搜索、安装、升级和卸载软件包的功能。其工作原理具体分析如下&#xff1a; 1. **集中式软件仓库机制**&#xff1a…

Linux之Nginx

1、Nginx 1.1、什么是Nginx Nginx最初由Igor Sysoev开发&#xff0c;最早在2004年公开发布。它被设计为一个轻量级、高性能的服务器&#xff0c;能够处理大量并发连接而不消耗过多的系统资源。Nginx的架构采用了事件驱动的方式&#xff0c;能够高效地处理请求。它的模块化设计使…

python-情报加密副本

【问题描述】某情报机构采用公用电话传递数据&#xff0c;数据是5位的整数&#xff0c;在传递过程中是加密的。加密规则如下&#xff1a;每位数字都加上8,然后用和除以7的余数代替该数字&#xff0c;再将第1位和第5位交换&#xff0c;第2位和第4位交换。请编写程序&#xff0c;…

Denoising Diffusion Probabilistic Models 全过程概述 + 论文总结

标题&#xff1a;Denoising&#xff08;&#x1f31f;去噪&#xff09;Diffusion Probabilistic Models&#xff08;扩散概率模型&#xff09; 论文&#xff08;NeurIPS会议 CCF A 类&#xff09;&#xff1a;Denoising Diffusion Probabilistic Models 源码&#xff1a;hojona…

卡特兰数-

是组合数学中一种常出现于各种计数问题中的数列。 一、简单介绍 卡特兰数是一个数列&#xff0c;其前几项为&#xff08;从第零项开始&#xff09; : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 47763…

QT---JSON使用

一、json 文件概述 JSON(JavaScript 0bject Notation)是一种轻量级的数据交换格式。易于人阅读和编写,可以在多种语言之间进行数据交换。同时也易于机器解析和生成,并有效地提升网络传输效率。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 J…

lllyasviel /Fooocus图像生成软件(基于 Gradio)

一、简介 1、Fooocus 是一款图像生成软件(基于 Gradio)。 Fooocus is an image generating software (based on Gradio). Fooocus 是一款图像生成软件(基于 Gradio)。 Fooocus is a rethinking of Stable Diffusion and Midjourney’s designs: Fooocus 是对 Stable Diff…

澳大利亚.德国-新闻媒体投放通稿:发表新闻稿需要留意哪些地方-大舍传媒

概述 当我们想要发布新闻稿时&#xff0c;了解目标媒体的特点和要求是至关重要的。本文将介绍澳大利亚和德国的新闻媒体&#xff0c;以及在撰写和投放新闻稿时需要注意的要点&#xff0c;以帮助您更好地与目标受众沟通。 澳大利亚媒体 澳大利亚是一个多元化的国家&#xff0…

Android ListView鼠标模式下ListView回滚问题

概述 在 Android 应用程序中&#xff0c;ListView 是一种常用的控件&#xff0c;用于显示可滚动列表数据。然而&#xff0c;当在鼠标操作模式下使用 ListView 时&#xff0c;可能会遇到一个问题&#xff1a;点击列表项时&#xff0c;列表会回滚到指定位置&#xff0c;这可能会导…

什么叫图像的椒盐噪声?并附添加椒盐噪声的代码

图像的椒盐噪声是一种常见的图像噪声类型&#xff0c;通常是由于图像采集、传输或处理过程中引入的随机干扰所导致的。它的特点是在图像中出现随机的亮或暗的像素点&#xff0c;这些像素点看起来就像是图像中撒了一些盐和胡椒一样&#xff0c;因此得名。 椒盐噪声可能是由于传…