From d8b2265f5f90f1d1e35051c673d6dd3596ca820e Mon Sep 17 00:00:00 2001 From: BingmingWong Date: Wed, 14 Apr 2021 22:28:49 +0800 Subject: [PATCH] update from issue --- source/c01/c01_15.md | 2 +- source/c01/c01_15.rst | 4 ++-- source/c05/c05_06.md | 9 +++++++++ source/c05/c05_06.rst | 11 +++++++++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/source/c01/c01_15.md b/source/c01/c01_15.md index f5b0256..ec6b0ca 100644 --- a/source/c01/c01_15.md +++ b/source/c01/c01_15.md @@ -43,7 +43,7 @@ 当你执行 `env python` 时,它其实会去 `env | grep PATH` 里(也就是 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin )这几个路径里去依次查找名为python的可执行文件。 -找到一个就直接执行,上面我们的 python 路径是在 `/usr/bin/python` 里,在 `PATH` 列表里倒数第二个目录下,所以当我在 `/usr/local/sbin` 下创建一个名字也为 python 的可执行文件时,就会执行 `/usr/bin/python` 了。 +找到一个就直接执行,上面我们的 python 路径是在 `/usr/bin/python` 里,在 `PATH` 列表里倒数第二个目录下,所以当我在 `/usr/local/sbin` 下创建一个名字也为 python 的可执行文件时,就会执行 `/usr/local/sbin/python` 了。 具体演示过程,你可以看下面。 diff --git a/source/c01/c01_15.rst b/source/c01/c01_15.rst index 79c91a8..990627a 100644 --- a/source/c01/c01_15.rst +++ b/source/c01/c01_15.rst @@ -52,8 +52,8 @@ 找到一个就直接执行,上面我们的 python 路径是在 ``/usr/bin/python`` 里,在 ``PATH`` 列表里倒数第二个目录下,所以当我在 ``/usr/local/sbin`` -下创建一个名字也为 python 的可执行文件时,就会执行 ``/usr/bin/python`` -了。 +下创建一个名字也为 python 的可执行文件时,就会执行 +``/usr/local/sbin/python`` 了。 具体演示过程,你可以看下面。 diff --git a/source/c05/c05_06.md b/source/c05/c05_06.md index 1c4ad3f..83bfb88 100644 --- a/source/c05/c05_06.md +++ b/source/c05/c05_06.md @@ -49,6 +49,15 @@ def read_from_file(filename, block_size = 1024 * 8): yield chunk ``` +如果你使用的是 Python 3.8 +,还有一种更直观、易于理解的写法,既不用使用偏函数,也不用掌握 iter 这种另类的用法。而只要用利用 海象运算符就可以,具体代码如下 + +```python +def read_from_file(filename, block_size = 1024 * 8): + with open(filename, "r") as fp: + while chunk := fp.read(block_size): + yield chunk +``` + ![](http://image.iswbm.com/20200607174235.png) diff --git a/source/c05/c05_06.rst b/source/c05/c05_06.rst index d67d00a..6caf203 100644 --- a/source/c05/c05_06.rst +++ b/source/c05/c05_06.rst @@ -57,6 +57,17 @@ for chunk in iter(partial(fp.read, block_size), ""): yield chunk +如果你使用的是 Python 3.8 ++,还有一种更直观、易于理解的写法,既不用使用偏函数,也不用掌握 iter +这种另类的用法。而只要用利用 海象运算符就可以,具体代码如下 + +.. code:: python + + def read_from_file(filename, block_size = 1024 * 8): + with open(filename, "r") as fp: + while chunk := fp.read(block_size): + yield chunk + |image1| .. |image0| image:: http://image.iswbm.com/20200804124133.png