Python学习笔记009_构造与析构
2015-11-16 19:58
573 查看
>>> # 魔法方法
>>>
>>> # 魔法方法总是被双下划线包围,例如 __init__
>>> # 魔法方法是面向对象的Python的一切
>>> # 魔法方法的“魔力”体现在它们总能够在适当的时候被自动调用
>>>
>>> # __init__(self[,...]) 相当于其它语言的构造方法,在类对象实例化时会被自动调用
>>> # __init__方法的返回值是None,绝对不能写return
>>> # __init__()方法并不是第一个被调用的方法,而是 __new__(Cls[,...])
>>>
>>> # __new__ 方法,我们平时极少去重写它
>>>
>>> # 有一种情况需要重写__new__方法,就是当继承一个不可变类时,又需要进行修改
>>>
>>> # 如果说__init__方法和__new__方法是构造器的话,那么__del__方法就是析构方法
>>> # 当对象要被销毁时 __del__(self)方法会被自动调用,它是当垃圾回收机制使用的
>>>
>>> # __del__方法,并不是说我们执行了 del obj就会被调用,而是所有对它的引用都被del之后,才会被调用
>>> # time模块的一个应用
>>>
>>> # 这里我们重点使用 localtime()方法,它返回的是一个 时间元组,我们既可以通过索引取相应的值,也可以通过属性名取相应的值
>>>
time 模块详解(时间获取和转换)
http://bbs.fishc.com/thread-51326-1-1.html
>>> # 重写魔法方法 __str__() __rept__() ,调用对象或者print对象时就直接打印了我们返回的内容
>>>
>> # 基本要求:
>>> # -- 定制一个计时器的类
>>> # -- start和stop方法代表启动计时和停止计时
>>> # -- 假设计时器对象t1,print(t1)和直接调用他
>>> # t1均显示结果
>>> # 当计时器未启动或已经停止计时,调用stop方法会给予温馨的提示
>>> # 两个计时器对象可以进行加法运算 t1 + t2
>>>
>>>
>>> # 魔法方法总是被双下划线包围,例如 __init__
>>> # 魔法方法是面向对象的Python的一切
>>> # 魔法方法的“魔力”体现在它们总能够在适当的时候被自动调用
>>>
>>> # __init__(self[,...]) 相当于其它语言的构造方法,在类对象实例化时会被自动调用
>>> # __init__方法的返回值是None,绝对不能写return
>>> class Rectangle: def __init__(self,x,y): self.x = x self.y = y def getPeri(self): # 获取矩形的周长 return (self.x + self.y) * 2 def getArea(self): return self.x * self.y >>> rect = Rectangle(3,4) >>> rect.getPeri() 14 >>> rect.getArea() 12 >>>
>>> # __init__()方法并不是第一个被调用的方法,而是 __new__(Cls[,...])
>>>
>>> # __new__ 方法,我们平时极少去重写它
>>>
>>> # 有一种情况需要重写__new__方法,就是当继承一个不可变类时,又需要进行修改
>>>
>>> class CapStr(str): def __new__(cls,string): string=string.upper() return str.__new__(cls,string) >>> a = CapStr("I love you !") >>> a 'I LOVE YOU !' >>>
>>> # 如果说__init__方法和__new__方法是构造器的话,那么__del__方法就是析构方法
>>> # 当对象要被销毁时 __del__(self)方法会被自动调用,它是当垃圾回收机制使用的
>>>
>>> # __del__方法,并不是说我们执行了 del obj就会被调用,而是所有对它的引用都被del之后,才会被调用
>>> class C: def __init__(self): print("我是__init__方法,我被调用了...") def __del__(self): print("我是__del__方法,我被调用了...") >>> c = C() 我是__init__方法,我被调用了... >>> c2 = c >>> del c >>> del c2 我是__del__方法,我被调用了...
>>> # time模块的一个应用
>>>
>>> # 这里我们重点使用 localtime()方法,它返回的是一个 时间元组,我们既可以通过索引取相应的值,也可以通过属性名取相应的值
>>>
time 模块详解(时间获取和转换)
http://bbs.fishc.com/thread-51326-1-1.html
>>> # 重写魔法方法 __str__() __rept__() ,调用对象或者print对象时就直接打印了我们返回的内容
>>>
>>> class A(): def __str__(self): return '阿黄我爱你' >>> class B(): def __repr__(self): return '杨伟,我也爱你' >>> a = A() >>> b = B() >>> >>> a <__main__.A object at 0x0215F050> >>> print(a) 阿黄我爱你 >>> b = B() >>> b 杨伟,我也爱你 >>> print(b) 杨伟,我也爱你
>> # 基本要求:
>>> # -- 定制一个计时器的类
>>> # -- start和stop方法代表启动计时和停止计时
>>> # -- 假设计时器对象t1,print(t1)和直接调用他
>>> # t1均显示结果
>>> # 当计时器未启动或已经停止计时,调用stop方法会给予温馨的提示
>>> # 两个计时器对象可以进行加法运算 t1 + t2
>>>
相关文章推荐
- 使用Python代码处理Excel
- python 函数
- 每天一点python--assert断言
- python
- python 做爬虫
- Python的re(正则表达式)模块学习笔记
- Python学习记录-2
- python压缩文件目录和移动到指定文件夹
- 模型
- Python - SyntaxError: Non-ASCII character '\xe7' in file解决方法
- python获取服务器端的时间
- Python - Windows下安装easy_install, pip 及whl文件安装方法
- 利用Zabbix API 获取各个分组下的服务器列表以及详细信息
- Python教程(二)显示行号
- kmeans 算法,python
- python安装MYSQLdb
- Python--线性代数篇
- 详解在Python程序中解析并修改XML内容的方法
- Python使用requirements.txt安装类库
- python与SMTP