博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python笔记(二十二)_魔法方法_基本魔法方法
阅读量:5248 次
发布时间:2019-06-14

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

__init__(self[,...])

__init__和__new__组成python的构造器,但__init__更多的是负责初始化操作,相当于一个项目中的配置文件,__new__才是真正的构造函数,创建并返回一个实例对象,如果__new__只调用了一次,就会得到一个对象

 

__new__(cls[,...])

当继承一个不可修改的类,但又想去修改的时候,需要重写__new__方法

>>> class Capstr(str):        #str是一个不可修改的类

  def __new__(cls,string):

    string=string.upper()

  return str.__new__(cls,string)  

>>> a=Capstr('i am Demi')

>>> a

'I AM DEMI'

 

__del__(self)

是对象的析造器,并非所有del操作都会调用__del__(),只有对象生成后,所有对它的引用都被del之后,才会启动垃圾回收机制,才会调用__del__方法

>>> class C:

  def __init__(self):

    print('__init__方法正在被调用')

  def __del__(self):

    print('__del__方法正在被调用')

>>> c1=C()

  __init__方法正在被调用

>>> c2=c1

>>> del c2

>>> del c1

__del__方法正在被调用

转载于:https://www.cnblogs.com/demilisi/p/11048188.html

你可能感兴趣的文章
实习总结
查看>>
Could not Open Install.Log File解决方法
查看>>
指令常用寻址方式
查看>>
指纹识别缺点
查看>>
ios面试题2
查看>>
执行sql update use c#
查看>>
HTML5 file API加canvas实现图片前端JS压缩并上传
查看>>
PowerShell Advance Usage
查看>>
JAVA-初步认识-常用对象API(集合框架-ArrayList集合存储自定对象)
查看>>
把本地仓库同步到github上去
查看>>
DropDownlist数据SelectedIndexChanged触发问题解决
查看>>
[CareerCup][Google Interview] Merge Two BST
查看>>
poj 2051 优先队列
查看>>
C5500工程调试失败问题
查看>>
POJ 2752 Seek the Name, Seek the Fame
查看>>
递归和动态规划
查看>>
css浮动布局小技巧
查看>>
Entity Framework实体模型 入门视频教程
查看>>
Repeater获取某一行TextBox值
查看>>
模态框案例
查看>>