垃圾回收
程序中没有被引用的对象为垃圾。
垃圾会影响程序性能,应及时进行删除。
用过的对象,可以将对象赋值None来回收对象占用的内存。
class B:
def __init__(self):
self.name = 'B类'
def __del__(self):#Python默认会调用,不用手动写出来
print('B()对象被删除了....',self)
b = B()
# b = a
print(b.name)
b = None # 将b设置成了None,此时没有任何的变量对B()进行引用,回收b占用的内存空间
input('按回车退出.....')
模块
比如开发一个新程序,有些功能代码可以利用原来的。
方便开发,方便维护,可以复用。
python中一个模块名.py文件称为一个模块。
import 模块名
- import 模块名 -->引入一个外部模块
- import 模块名 as 别名 -->给模块起别名
- 模块.对象名 -->引用模块中的对象
- __name__ -->输出模块名,主程序模块名为__main__是当前模块
- 模块之间可以相互调用
import test
print(test.x)
执行结果
我是test模块
1
test.py中的代码
x = 1
print('我是test模块')
import test as t
print(type(t)) #<class 'module'>
print(__name__) #__main__
from 模块名 import 对象1,对象2…对象n
from test import add,x #引用模块test中的add方法
print(x) # 输出x对象
print(add(1,2)) #调用的时候直接写对象名,不用模块名.对象名
1.这种方法,直接使用import后面的对象。
2.from test import add as a,x as b 给对象起别名用逗号引入多个对象
3.from test import * 用*引入所有对象
程序入口 if __name__ == ‘__main__’:
程序入口,其实就是一个条件判断语句。
表示只在当前程序下运行的代码块
当另外的程序引入该模块时,**if __name__ == ‘__main__’: **下的代码块不会执行。
def add(a,b):
return a+b
print(add(1,2))
if __name__ == '__main__':
print(add(1,2))
执行结果
3 在当前程序下运行时输出2个3
3
另外的程序引入test模块
from test import *
执行结果
3
引入test模块时,运行结果只有1个3,因为引入的代码if __name__ == '__main__':不会执行。引入的模块是test