Python构建自己的with语句
我们平时使用python文件io时通常都会使用with打开
with open("test.txt", "r") as f:
print(f.read())
with as 实际上是用调用了对象中__enter__和__exit__方法
- __enter__ 需要返回一个对象 通过as后面的变量来接受这个对象
- __exit__ 这个方法是在with结束后执行的方法,比如数据库常用的close(),这个方法需要返回值,但是需要传入固定参数 exc_type, exc_val, exc_tb
自定义with as
class person():
def __init__(self, name):
self.name = name
def __enter__(self):
print(f"{self.name}今天出生了")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print(f"{self.name}离开了世界")
def start(self):
print("一百年过去了.....")
if __name__ == "__main__":
with person("张三") as zs:
zs.start()
输出结果
张三今天出生了
一百年过去了.....
张三离开了世界

浙公网安备 33010602011771号