做vip视频网站赚钱吗,南宁网站建站公司,重庆的网站设计公司价格,农村电商网站设计与发展现状文章目录 魔法方法1. __init__ 方法2. __del__ 方法3. __str__ 方法4. __repr__ 方法5. __call__ 方法进阶案例 魔法方法
Python 里有一种方法#xff0c;叫做魔法方法。Python 的类里提供的#xff0c;两个下划线开始#xff0c;两个下划线结束的方法#xff0c;就是魔法… 文章目录 魔法方法1. __init__ 方法2. __del__ 方法3. __str__ 方法4. __repr__ 方法5. __call__ 方法进阶案例 魔法方法
Python 里有一种方法叫做魔法方法。Python 的类里提供的两个下划线开始两个下划线结束的方法就是魔法方法魔法方法在恰当的时候就会被激活自动执行。
魔法方法的两个特点
两侧各有两个下划线咒语名字已经由 Python 官方定义好我们不能乱写。
1. __init__ 方法
__init__() 方法在创建一个对象时默认被调用不需要手动调用。在开发中如果希望在创建对象的同时就设置对象的属性可以对 __init__ 方法进行改造。
class Cat:
这是一个猫类def __init__(self,name): # 重写了 __init__ 魔法方法self.name namedef eat(self):return %s爱吃鱼%self.namedef drink(self):return %s爱喝水%self.name
tom Cat()
TypeError: __init__() missing 1 required positional argument: name
这种写法在运行时会直接报错因为 __init__ 方法里要求在创建对象时必须要传递 name 属性如果不传入会直接报错
tom Cat(Tom) # 创建对象时必须要指定 name 属性的值
tom.eat() # tom爱吃鱼注意
__init__() 方法在创建对象时会默认被调用不需要手动的调用这个方法。__init__() 方法里的 self 参数在创建对象时不需要传递参数python 解释器会把创建好的对象引用直接赋值给 self。在类的内部可以使用 self 来使用属性和调用方法在类的外部需要使用对象名来使用属性和调用方法。如果有多个对象每个对象的属性是各自保存的都有各自独立的地址。方法是所有对象共享的只占用一份内存空间方法被调用时会通过 self 来判断是哪个对象调用了实例方法。
2. __del__ 方法
创建对象后Python 解释器默认调用 __init__() 方法而当删除对象时Python 解释器也会默认调用一个方法这个方法为 __del__() 方法。
class Student:def __init__(self,name,score):print(__init__方法被调用了)self.name nameself.score scoredef __del__(self):print(__del__方法被调用了)s Student(lisi,95)
del s
input(请输入内容)3. __str__ 方法
__str__ 方法返回对象的描述信息使用 print() 函数打印对象时其实调用的就是这个对象的 __str__ 方法。
class Cat:def __init__(self,name,color):self.name nameself.color colortom Cat(Tom,white)# 使用 print 方法打印对象时会调用对象的 __str__ 方法默认会打印类名和对象的地址名
print(tom) # __main__.Cat object at 0x0000021BE3B9C940如果想要修改对象的输出结果可以重写 __str__ 方法。
class Person:def __init__(self,name,age):self.name nameself.age agedef __str__(self):return 哈哈p Person(张三,18)
print(p) # 哈哈 打印对象时会自动调用对象的 __str__ 方法一般情况下我们在打印一个对象时可能需要列出这个对象的所有属性。
class Student:def __init__(self,name,score):self.name nameself.score scoredef __str__(self):return 姓名是:{},成绩是{}分.format(self.name,self.score)s Student(lisi,95)
print(s) # 姓名是:lisi,成绩是95分4. __repr__ 方法
__repr__ 方法和 __str__ 方法功能类似都是用来修改一个对象的默认打印内容。在打印一个对象时如果没有重写 __str__ 方法它会自动来查找 __repr__ 方法。如果这两个方法都没有会直接打印这个对象的内存地址。
class Student:def __init__(self, name, score):self.name nameself.score scoredef __repr__(self):return hellloclass Person:def __repr__(self):return hidef __str__(self):return goods Student(lisi, 95)
print(s) # hellop Person()
print(p) # good5. __call__ 方法
对象后面加括号触发执行。
class Foo:def __init__(self):passdef __call__(self, *args, **kwargs):print(__call__)obj Foo() # 执行 __init__
obj() # 执行 __call__总结
当创建一个对象时会自动调用 __init__ 方法当删除一个对象时会自动调用 __del__ 方法。使用 __str__ 和 __repr__ 方法都会修改一个对象转换成为字符串的结果。一般来说__str__ 方法的结果更加在意可读性而 __repr__ 方法的结果更加在意正确性(例如: datetime 模块里的 datetime 类)。
进阶案例 【Python】Python 实现猜单词游戏——挑战你的智力和运气 【python】Python tkinter库实现重量单位转换器的GUI程序 【python】使用Selenium获取(2023博客之星)的参赛文章 【python】使用Selenium和Chrome WebDriver来获取 【腾讯云 Cloud Studio 实战训练营】中的文章信息 使用腾讯云 Cloud studio 实现调度百度AI实现文字识别 【玩转Python系列【小白必看】Python多线程爬虫下载表情包网站的图片 【玩转Python系列】【小白必看】使用Python爬取双色球历史数据并可视化分析 【玩转python系列】【小白必看】使用Python爬虫技术获取代理IP并保存到文件中 【小白必看】Python图片合成示例之使用PIL库实现多张图片按行列合成 【小白必看】Python爬虫实战之批量下载女神图片并保存到本地 【小白必看】Python词云生成器详细解析及代码实现 【小白必看】Python爬取NBA球员数据示例 【小白必看】使用Python爬取喜马拉雅音频并保存的示例代码 【小白必看】使用Python批量下载英雄联盟皮肤图片的技术实现 【小白必看】Python爬虫数据处理与可视化 【小白必看】轻松获取王者荣耀英雄皮肤图片的Python爬虫程序 【小白必看】利用Python生成个性化名单Word文档 【小白必看】Python爬虫实战获取阴阳师网站图片并自动保存 小白必看系列之图书管理系统-登录和注册功能示例代码 小白实战100案例: 完整简单的双色球彩票中奖判断程序适合小白入门 使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化 使用selenium爬取猫眼电影榜单数据 图像增强算法Retinex原理与实现详解 爬虫入门指南(8): 编写天气数据爬虫程序实现可视化分析 爬虫入门指南(7):使用Selenium和BeautifulSoup爬取豆瓣电影Top250实例讲解【爬虫小白必看】 爬虫入门指南(6):反爬虫与高级技巧IP代理、User-Agent伪装、Cookie绕过登录验证及验证码识别工具 爬虫入门指南(5): 分布式爬虫与并发控制 【提高爬取效率与请求合理性控制的实现方法】 爬虫入门指南(4): 使用Selenium和API爬取动态网页的最佳方法 爬虫入门指南(3)Python网络请求及常见反爬虫策略应对方法 爬虫入门指南(2)如何使用正则表达式进行数据提取和处理 爬虫入门指南(1)学习爬虫的基础知识和技巧 深度学习模型在图像识别中的应用CIFAR-10数据集实践与准确率分析 Python面向对象编程基础知识和示例代码 MySQL 数据库操作指南学习如何使用 Python 进行增删改查操作 Python文件操作指南编码、读取、写入和异常处理 使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致未来因你出“粽” # 的投稿文章 Python多线程与多进程教程全面解析、代码案例与优化技巧 Selenium自动化工具集 - 完整指南和使用教程 Python网络爬虫基础进阶到实战教程 Python入门教程掌握for循环、while循环、字符串操作、文件读写与异常处理等基础知识 Pandas数据处理与分析教程从基础到实战 Python 中常用的数据类型及相关操作详解 【2023年最新】提高分类模型指标的六大方案详解 Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能 用4种回归方法绘制预测结果图表向量回归、随机森林回归、线性回归、K-最近邻回归