上下文管理器

  • 上下文管理器可以帮助我们自动分配和释放资源
  • 上下文管理器需要配合with语句使用

比如进行文件操作的时候我们可能会忘记操作后关闭文件(file close),使用with open(filename, mode) as f不需要我们手动关闭文件,不管处理文件中是否有异常出现,都能保证with语句执行完毕后关闭文件,有效防止资源泄露,安全多了。

1
2
3
# with 语句的一般格式
with context_expression [as target(s)]:
with-body

在执行with-body会调用上下文管理器的enter方法,执行完with-body之后再调用上下文管理器的exit方法

看到吐血 _(´ཀ`」 ∠)_

  • 协程(Coroutine)本质上是一个函数,特点是在代码块中可以将执行权交给其他协程
  • 众所周知,子程序(函数)都是层级调用的,如果在A中调用了B,那么B执行完毕返回后A才能执行完毕。协程与子程序有点类似,但是它在执行过程中可以中断,转而执行其他的协程,在适当的时候再回来继续执行。
  • 协程与多线程相比的最大优势在于:协程是一个线程中执行,没有线程切换的开销;协程由用户决定在哪里交出控制权
  • 这里用到的是asyncio库(Python 3.7),这个库包含了大部分实现协程的魔法工具
    • 使用 async 修饰词声明异步函数
    • 使用 await 语句执行可等待对象(Coroutine、Task、Future)
    • 使用 asyncio.create_task 创建任务,将异步函数(协程)作为参数传入,等待event loop执行
    • 使用 asyncio.run 函数运行协程程序,协程函数作为参数传入

公式插入方式

  1. 行内公式可用\(...\)$...$
  • 例如$ f(x)=x^2 $,显示为$ f(x)=x^2 $
  1. 独立公式(单独另起一行,公式会居中),使用$$...$$\[...\]
  • 例如:$$ \limit{f(x)dx} $$
1
2
3
4
5
6
1. 行内公式可用`\(...\)``$...$`
- 例如`$ f(x)=x^2 $`,显示为$ f(x)=x^2 $

2. 独立公式(单独另起一行,公式会居中),使用`$$...$$``\[...\]`
- 例如:`$$ \limit{f(x)dx} $$`
$$ \int_a^b{f(x)dx} $$


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量为 次 。