博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中魔术方法简述
阅读量:7228 次
发布时间:2019-06-29

本文共 881 字,大约阅读时间需要 2 分钟。

魔术方法:***

python中魔术方法简述
实例化:
new :
实例化一个对象 方法很少使用,一般使用return super().))new(cls)基类ibject方法来创建实例并返回。

hash:

返回一个整数,如果定义这个方法该类的实例就可hash。
eq:
对应==操作符,判断2个对象是否相等,返回bool值。
hash方法只是返回一个hash值作为set的key,但是去重,还需要eq来判断2个对象是否相等。只是hash冲突,不能说明两个对象是相等的。因此,一般来说提供hash方法是为了作为set或者dict的key,所以去重要同时提供eq方法。
如果一个类不能hash,就把hash设置为None。

bool

python中魔术方法简述

可视化:

python中魔术方法简述

运算符重载:

python中魔术方法简述
python中魔术方法简述

容器相关方法:

python中魔术方法简述

python中魔术方法简述

可调用对象:

python中一切皆对象,函数也不例外。
call类中定义一个该方法,实例就可以像函数一样被调用。
python中魔术方法简述

上下文管理:

python中魔术方法简述

实例化对象时,并不会调用enter进入with语句块调用enter方法,然后执行语句块,最后离开时,调用exit方法。

enter方法返回值就是上下文中使用的对象,with语法会把它的返回值赋予as字句的变量。
python中魔术方法简述
python中魔术方法简述

反射:

运行时,区别于编译时,指的是程序被加载到内存中执行的时候。
reflection,指的是运行时获取类型定义信息。
简单说,再Python中,能够通过一个对象,找出其type,class,attribute,method的能力。
具有反射能力的函数有:type(),isinstance(),callable(),dir(),getattr()
python中魔术方法简述
python中魔术方法简述
python中魔术方法简述
python中魔术方法简述

delattr():

可以阻止通过实例删除属性的操作,但是通过类依然可以删除属性。

getattribute:

除非明确知道用该方法做什么,不然少用。
python中魔术方法简述

描述器 Descriptors:

所用魔术方法:get(),set(),delete()
python中魔术方法简述
python中魔术方法简述

x= A()时,A已经产生了实例,则init已运行。

python中魔术方法简述

运行结果来看,只有类属性是类的实例才行。

python中魔术方法简述

转载于:https://blog.51cto.com/13929187/2239982

你可能感兴趣的文章
java中相同名字不同返回类型的方法
查看>>
Rails NameError uninitialized constant class solution
查看>>
Android 获取SDCard中某个目录下图片
查看>>
设置cookies第二天0点过期
查看>>
【转载】NIO客户端序列图
查看>>
poj_2709 贪心算法
查看>>
【程序员眼中的统计学(11)】卡方分布的应用
查看>>
文件夹工具类 - FolderUtils
查看>>
http://blog.csdn.net/huang_xw/article/details/7090173
查看>>
lua学习例子
查看>>
研究:印度气候变暖速度加剧 2040年或面临重灾
查看>>
python爬虫——爬取豆瓣TOP250电影
查看>>
C++与Rust操作裸指针的比较
查看>>
了解webpack-4.0版本(一)
查看>>
如何培养良好的编程风格
查看>>
Netty Channel源码分析
查看>>
基于 HTML5 WebGL 的 3D 机房
查看>>
Java编程——数据库两大神器:索引和锁
查看>>
springMvc学习笔记(2)
查看>>
吐槽Javascript系列二:数组中的splice和slice方法
查看>>