1.__new__   构造方法

  实例化对象是先执行__new__方法,但是类中没有__new__方法,所以先到父类object类中的new方法,开辟一个属于对象的空间,然后再执行init方法

  设计模式:常用的有23种,这个概率是在Java中提出来得

  在Python中有俩种人

    一种是推崇设计模式,这种人基本都是由java开发转Python开发的人

    一种是贬低设计模式,这种人就是纯Python开发的人

  常用的一种:单例模式:一个类只有一个实例的时候

# class Foo:
#     __instance = None
#     def __init__(self,name,age):                 # 初始化方法
#         self.name = name
#         self.age = age
#         self.lst = [name]
#     def __new__(cls, *args, **kwargs):  # 构造方法
#         if cls.__instance is None:
#             cls.__instance = object.__new__(cls)
#         return cls.__instance    #每次实例化的空间都是同一个空间
#
# obj1 = Foo('alex',20)
# obj2 = Foo('egon',22)
# print(obj1.lst,obj2.lst)    

2.__init__    初始化方法

3.__del__    析构方法:在删除这个类创建对象的时候,会先触发这个方法,再删除对象

        做一些清理工作,比如说关闭文件,关闭网络的链接,数据库的链接

  运用场景:在类中对文件进行抄做的时候,需要关闭文件所以会用到__del__

  触发机制:del

4.__eq__  判断俩个实例对象是否一致

  触发机制:  ==

class Staff:def __init__(self,name,sex):self.name = nameself.sex = sexdef __eq__(self, other):return self.__dict__ == other.__dict__
alex = Staff("alex","男")
alex1 = Staff("alex","男")
print(alex == alex1)
alex3 = Staff("lin","男")
print(alex == alex3)

5.__hash__   hash()

  每重新执行hash值,hash都会发生变化,但是一次执行的过程中,同一个值对应的hash值是一样的,而字典的查找原理就是利用hash值在一次执行是一样的而快速找到的

  set的去重机制

    对每一个元素进行hash计算出一个内存地址

    到这个内存地址上查看,如果这块内存中没有值,就将这个元素存到对应的内存地址上

 如果这块内存中已经有值,判断这俩个值是否相等如果相等,就会放弃后面的值

 如果不相等,就会二次寻址再找一个新的空间来存储这个值

6.__len__  触发机制,len(类名)

  应用场景:测量类中的某个列表的长度

# class Foo:
#     def __len__(self):
#         return len(self.student)
#     def __init__(self):
#         self.name = "骑士计划"
#         self.course = "python"
#         self.student = []
# s1 = Foo()
# s1.student.append("wuyi")
# s1.student.append("lin")
# s1.student.append("wang")
# print(len(s1))    #3  会执行列中的__len__方法

转载于:https://www.cnblogs.com/yuncong/p/9580586.html

内置方法 __new__ __del__相关推荐

  1. python全栈开发基础【第十七篇】面向对象反射和内置方法

    一.静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被 ...

  2. Python内置方法

    一.常用的内置方法 1.__new__ 和 __init__: __new__ 构造方法 .__init__初始化函数 1.__new__方法是真正的类构造方法,用于产生实例化对象(空属性).重写__ ...

  3. python反射和高阶内置方法

    1.isinstance:判断对象和类的关系 #判断结果返回bool类型 class A:pass class B(A):pass a = A() print(isinstance(a,A)) #Tr ...

  4. python 类调用不存在的方法_[python] 类常用的内置方法

    内置方法 说明 __init__(self,...) 初始化对象,在创建新对象时调用 __del__(self) 释放对象,在对象被删除之前调用 __new__(cls,*args,**kwd) 实例 ...

  5. python 类的内置方法_【转】[python] 类常用的内置方法

    原文:http://xukaizijian.blog.163.com/blog/static/170433119201111894228877/ 内置方法 说明 __init__(self,...) ...

  6. 二. python面向对象(内置方法and析构函数)

    一. 内置方法和析构函数 __str__() 在调用print 打印对象时自动调用 是给用户用的 是一个描述对象的方法__repr__() 是给机器用的在python 解释器里面直接敲对象在回车后调用 ...

  7. Python 入门 —— Python 面向对象:类的创建及其基本内置方法的使用

    Python 面向对象:类的创建及其基本内置方法的使用 首先了解一下什么是面向对象 面向过程: 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了. ...

  8. python面向对象 : 反射和内置方法

    一. 反射 1. isinstance()和issubclass() isinstance( 对象名, 类名) : 判断对象所属关系,包括父类  (注:type(对象名) is 类名 : 判断对象所属 ...

  9. python类的内置方法_python面向对象之类中的内置方法

    __setattr__,__delattr__,__getattr__,__getattribute__以及标准类型的二次加工 __setattr__,__delattr__,__getattr__的 ...

最新文章

  1. 【独家】深度学习论文阅读路线图
  2. Java包的命名规范
  3. bytes用str转还是用decode
  4. (Prototype)原型模式的Java实现(转)
  5. Spring高级之注解@lazy详解(超详细)
  6. VTK7.0.0编译安装心得
  7. 【大数据部落】基于LDA主题模型聚类的商品评论文本挖掘
  8. bp神经网络java代码_BP神经网络的Java实现
  9. DDcGAN:用于多分辨率图像融合的双判别器生成对抗网络
  10. openssl生成key和pem文件
  11. vue HTML内使用触底加载
  12. 旅游新纪元紫山缭绕,静思生活
  13. php5.6安装zendopcache加速
  14. unix/linux 系统 进程资源限制参数
  15. WAP(wml)开发教程10--WAP网站服务器配置
  16. UHS-I SD/miroSD接口速率速查表
  17. oracle10gwin,win10肿么彻底卸载oracle10g
  18. IT行业里的热门技术和项目分享
  19. java 关于Scanner类中hasNextXxx()方法
  20. Css打造一个简单的静态七巧板

热门文章

  1. docker 不包含依赖 打包_2019开启新学习,带你从零了解Docker
  2. android模拟鼠标点击事件给控件,Android使用模拟鼠标拖动操作
  3. e生保等待期什么意思_买了保险不知道赔什么?一文看懂【保险责任】
  4. 计算机主机箱外面有什么区别吗,电脑主机箱后面有三个插头空 都是干什么用的啊?...
  5. 中对缺失数据的预处理_数据预处理也有套路的
  6. linux tomcat重启 报错,Linux启动Tomcat或停止Tomcat的错误解决方案
  7. mysql 修改字段注释_MySQL数据库+命令大全,人手一份的实操攻略来啦
  8. 系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN
  9. 光流(二)--光流算法
  10. 系统学习机器学习之正则化(一)