整理自小甲鱼鱼C论坛
构造与析构
__init__(self[,...])
__init__()相当于其他面向对象编程语言的构造方法,也就是类在实例化成对象时,首先会调用的方法。
class Rectangle: |
需要注意,
__init__()方法不能return值,只能return None.
__new__(cls[,...])
__new__()方法是对象实例化时,调用的第一个方法。他的第一个参数不self,而是类cls,同时,其他参数会传入__init__()中。
__new__()需要返回一个实例对象,通常是cls这个类实例化的对象,当然也可以返回其他对象。
通常在继承一个不可变的类型的时候,需要使用__new__()方法。如下代码:
class CapStr(str): |
__del__(self)
__del__()方法只有在垃圾回收机制激活时才能调用,即对应数据完全删除以后。
class DelPrint(): |
练习:
(1) 写一个FileObject类,给文件对象进行包装,从而确认在删除对象时文件能自动关闭。
class FileObject: |
(2) 定义一个摄氏度到华氏度转换(华氏度 = 摄氏度*1.8 + 32)。
class C2F(float): |
(3) 定一个一个类继承int类型,当传入参数是字符串时候,返回该字符串所有字符的ASCII码的和(ord())
class TOASCII(int): |