把大象放进冰箱里——资源的打开、应用与关闭
冰箱名是内存上的临时数据,是一个字符串或者一个整数,是资源的一个代号。
冰箱是对资源的一个引用,对此参数操作会对实际资源产生影响。
谁创建了资源的引用,谁就有义务关闭资源引用,以避免影响其它程序使用。
使用资源管理类(如数据库连接池),统一管理资源的引用,需要使用资源的函数向资源管理类申请,只使用而不用关心关闭。
对象也可以视为资源,IOC容器就是对象的资源管理类,负责创建和销毁,当然包括分配。
gc也可以用视为资源的管理类,但负责销毁,而不负责创建。
开发者如果只是创建了资源,就需要记得关闭资源。
开发者如果只是使用资源,那么向资源管理类申请资源分配即可,而不必关系销毁。当然,前提是,资源管理类负责资源创建和销毁。
function(冰箱名,大象):
冰箱=open(冰箱名)
冰箱.put(大象);
冰箱.close();
function(冰箱名,大象):
with open("冰箱名") as 冰箱:
冰箱.put(大象);

浙公网安备 33010602011771号