首页 / PYTHON / python 魔术方法
python 魔术方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python 魔术方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2615字,纯文字阅读大概需要4分钟。
内容图文
![python 魔术方法](/upload/InfoBanner/zyjiaocheng/829/4689b7210c324bf59408cb2fc23da8eb.jpg)
魔术方法:一种特殊的方法而已。
特点:不需要人工调用,在特定的时刻自动执行。
1.__init__ 初始化魔术方法
1.触发时机:实例化对象之后触发
2.作用:为对象添加对象的所属成员。
3.参数:一个self 接受当前对象 其他的参数根据实例化的传参决定
4.返回值:无
5.注意事项:无
1 #__init__初始化魔术方法 2 3 class Human: 4 #属性 5 sex = 'man' 6 age = 1 7 name = '张三' 8 eye =2 9 skin = 'yellow' 10 11 #方法 12 #魔术方法__init__ 13 def __init__(self,kidname): 14 print('init方法被执行') 15 #为对象加成员 16 self.sex = '男' 17 self.age = 1 18 self.name = kidname 19 20 def eat(self): 21 print('吃饭的方法') 22 23 def run(self): 24 print('跑步的方法') 25 26 def sleep(self): 27 print('睡觉的方法') 28 29 #实例化一个人的对象 30 31 one = Human('刘佳怡') #实例化对像【1.制作一个对象(new),2.初始化对像(init)】
32 #输出结果:init方法被执行 33 34 print(one.__dict__)#打印对象成员 35 #输出结果:{'sex': '男', 'age': 1, 'name': '刘佳怡'} 36 37 print(one) 38 #输出结果:<__main__.Human object at 0x00000149782C0048>
2.__new__ 构造方法
1.触发时机:实例化对象的时候触发!
2.作用:管理控制对象的生成过程。
3.参数:一个cls接受当前类,其他的参数根据实例化的参数决定
4.返回值:可有可无 没有返回值,实例化结果为None
5.注意事项:new魔术方法跟init的魔术方法的参数一致(除了第一个)
3.__del__ 析构方法 (拆构方法)
1.触发时机:对象被系统回收的时候自动触发(del不一定触发)
2.作用:回收程序使用过程的信息和变量等
3.参数:一个self接收当前对象
4.返回值:无
5.注意事项:无
4.__call__
1.触发时机:将对象当作函数调用的时候自动触发
2.作用:常用于归结类/对象的操作步骤,方便后期掉用
3.参数:一个self接受当前对象,其余的参数根据需求添加
4.返回值:可以有,可以没有
5.注意事项:无
5.__len__
1.触发时机:使用len函数检测对象的时候自动触发
2.作用:使得len可以检测对象中某个数据的信息
3.参数:一个self接受当前对象
4.返回值:必须有,必须是整型
5.注意事项:len检测什么有程序员自己决定
6.__str__
1.触发时机:使用print打印对象的时候自动触发
2.作用:可以定义打印对象显示的信息内容
3.参数:一个self接受当前对象
4.返回值:必须有,且必须是字符串类型
5.注意事项:除了print之外,使用str() 转换数据的时候也会触发
7.__repr__
1.触发时机:在使用repr转换对象的时候自动触发
2.作用:可以设置repr函数操作对象的结果
3.参数:一个self接受有当前对象本身
4.返回值:有必须是字符串
5.注意事项:正常情况下,类中的__str__和__repr__魔术方法是完全一样的(字符串中的str和repr魔术方法就不一样。)
8.__bool__
1.触发时机:使用bool() 转换对象的时候自动触发
2.作用:用于检测对象成员的信息
3.参数:一个self接受当前对象
4.返回值:必须有且必须是布尔值
5.注意事项:无
9.__format__
1.触发时机:
2.作用:
3.参数:
4.返回值:
5.注意事项:
内容总结
以上是互联网集市为您收集整理的python 魔术方法全部内容,希望文章能够帮你解决python 魔术方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。