当前位置: 移动技术网 > IT编程>脚本编程>Python > python学习

python学习

2018年08月07日  | 移动技术网IT编程  | 我要评论

学习python中as的用法

对于文件操作,正常的操作方法是:

filename = raw_input("please enter you filename:")

# open and exception
try:
    fs = open(filename)
except:
    print "open file %s failed" % filename
    exit(-1)

# read file
data = fs.read()

print "file data %s" % data

# close file
fs.close()

 

为了简化操作,可以通过as取代打开文件的except部分和关闭文件,简化写法:

filename = raw_input("please enter you filename:")

with open(filename) as fs:
    data = fs.read()

print "file data %s" % data

 

原理:

紧跟with后面的语句被求值后,返回对象的 __enter__() 方法被调用,这个方法的返回值将被赋值给as后面的变量。

当with后面的代码块全部被执行完之后,将调用前面返回对象的 __exit__()方法。

扩展:

C++中比较头疼的是内存泄露问题,如果使用new动态申请内存,需要时刻记得delete回收内存,避免发生内存泄露。

对于分支很多的代码来讲,在多个分支进行内存释放很容易产生遗漏,排查代码非常浪费时间。

为了避免这种情况,C++采用智能指针的方式进行内存管理,智能指针本身就是一个类,在类的对象超出作用域范围时,会自动调用析构函数。

因此,只需要在析构函数中完成内存的释放即可,非常方便,智能指针内容详见下一篇笔记。

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网