当前位置:首页 > 编程教程 > Python教程 > python类中的方法

python类中的方法
栏目分类:Python教程发布日期:2020-01-18浏览次数:

类中的方法 本节将作为一个专题,对类内的各种方法拆解开来讲解。 1.构造方法和析构方法 构造方法__init__()用于初始化类的内容部状态,当类实例化一个对象时会自动执行构造方法。__init__()方法是可选的,如果没有手动指定构造方法,那么Python 会给出默认
类中的方法

本节将作为一个专题,对类内的各种方法拆解开来讲解。

1.构造方法和析构方法

构造方法“__init__()”用于初始化类的内容部状态,当类实例化一个对象时会自动执行构造方法。__init__()方法是可选的,如果没有手动指定构造方法,那么Python 会给出默认的__init__方法。
与构造方法对应的是析构方法“__del__()”,它的作用是在一个对象被销毁时释放对象所占用的资源,在一个python程序中,使用del关键字删除对象,或在程序运行结束时,会调用他本身的析构方法,这样可以使内存空间得到释放,如果不提供析构方法,python会在后台自动添加。我们这里显式地重写一下析构方法,方便大家理解。

 输出结果:
x1被创建
x2被创建
x1被销毁
程序结束
x2被销毁
 
我们这里定义了一个测试类,类中只有构造方法和析构方法,其中第7行在创建x1对象时,自动调用构造方法输出第一行结果,同理创建x2对象时输出第二行结果,程序第9行,我们使用del关键字手动删除x1对象,此时会调用x1对象的析构函数所以输出结果第三行,接下输出第四行就是程序第10行的运行结果,我们这里作为一个节点来分割,最后程序真正结束,python自动回收x2对象,所以才会输出最后一行结果。

2.静态方法

静态方法指的是python中与“类对象”无关的方法。
静态方法和我们之前学习的模块中的普通函数没有区别,只不过“静态方法”放到了类的命名空间里面,使用时必须通过类来调用它,需要注意的是类里面的静态方法不能访问实例变量以及实例方法,因此它不需要加self参数。
静态方法需要通过装饰器@staticmethod来声明,其它部分和我们之前的方法没有区别。

3.类方法

类方法是从属于“类对象”的方法,即将类本身作为对象进行操作的方法,它的使用方法和静态方法十分类似。
类方法是通过装饰器@classmethod来声明的,它和静态方法的区别在于,类方法的第一个参数必须是“cls”,它指的是“类对象”本身。


Cookie:垃圾回收机制

python使用了引用计数的技术对内存中的对象进行监督。
在python的内部有引用计数器,它会记录内部所以使用中的对象,当创建一个对象时,就会自动创建一个引用计数,当这个对象不在需要时,比如程序结束或者删除该对象,这时引用计数会变为0,它就会被垃圾回收,但是这个过程不是立即执行,而是由python解释权选择适当的时机,将垃圾对象占用的内存空间回收。
垃圾回收机制还可以处理循环引用的情况,循环引用,即两个对象直接相互引用,没有其他多余变量再来引用他们,这时,仅仅依靠引用计数就会显得乏力,所以垃圾回收机制除了引用计数器之外,还提供了一个循环垃圾收集器,它会留心被分配总量很大的对象,以及引用计数器未能销毁的对象,这种情况下,解释器会暂停下来,试图清理掉那些未被引用的循环。


相关热词: python

     
编程入门 编程教程 编程资源 编程问答