天天看点

24-python_内部类-构造函数与析构函数-垃圾回收机制1. 内部类2. 构造函数 与 析构函数3. 垃圾回收机制

- 内部类

- 构造函数与析构函数

- 垃圾回收机制

1. 内部类

 1.1 概念

  类的内部定义的类, 相当于类的成员

 1.2 实例化

  1) outClassName.inClassName()

  2) outClassName().inClassName()

 1.3 例子

class MyOuterClass:
	"""docstring for ClassName"""
	def method(self) :
		print "hello"

	class MyInnerClass :
		var = "I am inner class"


if __name__ == "__main__":
	MyOuterClass().method()		
	print MyOuterClass().MyInnerClass().var
	print MyOuterClass().MyInnerClass.var
	print MyOuterClass.MyInnerClass.var
           

2. 构造函数 与 析构函数

 2.1 构造函数

  2.1.1 概念

  1) 函数名: __init__()

  2) 作用  : 初始化对象

  3) 执行时机: 对象初始化时被调用

  2.1.2 例子

class Demo :

	def __init__(self):
		print "I'm  __init__()"

if __name__ == '__main__':
	Demo()
           

 2.2 析构函数

  2.2.1 概念

  1) 函数名: __del__()

  2) 作用  : 对象销毁之前 处理一些资源

  3) 执行时机: 对象销毁时被调用

  4) 可以用内置函数 del(instance) 来销毁

  2.2.2 例子  

class Destory :

	def __init__(self):
		print "init myself"

	def __del__(self):
		print "ruin myself"

if __name__ == '__main__':
	instance = Destory()
	print "do someting 11"
	#del instance
	#print "do someting 22"
           

3. 垃圾回收机制

 - Python采用 垃圾回收机制 来清理不再使用的对象

 - Python提供 gc模块 释放不再使用的对象

 - Python采用"引用计数"的算法方式来处理回收

   即, 当某个对象在其作用域内不再被其他对象引用时, 该对象就被自动清除

 - gc.collect() 可以一次性收集 所有待处理的对象