diff --git a/source/c01/p11_naming_slice.rst b/source/c01/p11_naming_slice.rst index 31884a9..5bd9132 100644 --- a/source/c01/p11_naming_slice.rst +++ b/source/c01/p11_naming_slice.rst @@ -5,12 +5,12 @@ ---------- 问题 ---------- -你的程序已经出现一大堆已无法直视的硬编码切片下标,然后你想清理下代码。 +如果你的程序包含了大量无法直视的硬编码切片,并且你想清理一下代码。 ---------- 解决方案 ---------- -假定你有一段代码要从一个记录字符串中几个固定位置提取出特定的数据字段(比如文件或类似格式): +假定你要从一个记录(比如文件或其他类似格式)中的某些固定位置提取字段: .. code-block:: python @@ -26,16 +26,16 @@ PRICE = slice(31, 37) cost = int(record[SHARES]) * float(record[PRICE]) -第二种版本中,你避免了大量无法理解的硬编码下标,使得你的代码更加清晰可读了。 +在这个版本中,你避免了使用大量难以理解的硬编码下标。这使得你的代码更加清晰可读。 ---------- 讨论 ---------- -一般来讲,代码中如果出现大量的硬编码下标值会使得可读性和可维护性大大降低。 +一般来讲,代码中如果出现大量的硬编码下标会使得代码的可读性和可维护性大大降低。 比如,如果你回过来看看一年前你写的代码,你会摸着脑袋想那时候自己到底想干嘛啊。 -这里的解决方案是一个很简单的方法让你更加清晰的表达代码到底要做什么。 +这是一个很简单的解决方案,它让你更加清晰的表达代码的目的。 -内置的 ``slice()`` 函数创建了一个切片对象,可以被用在任何切片允许使用的地方。比如: +内置的 ``slice()`` 函数创建了一个切片对象。所有使用切片的地方都可以使用切片对象。比如: .. code-block:: python @@ -65,9 +65,9 @@ 2 >>> -另外,你还能通过调用切片的 ``indices(size)`` 方法将它映射到一个确定大小的序列上, -这个方法返回一个三元组 ``(start, stop, step)`` ,所有值都会被合适的缩小以满足边界限制, -从而使用的时候避免出现 ``IndexError`` 异常。比如: +另外,你还可以通过调用切片的 ``indices(size)`` 方法将它映射到一个已知大小的序列上。 +这个方法返回一个三元组 ``(start, stop, step)`` ,所有的值都会被缩小,直到适合这个已知序列的边界为止。 +这样,使用的时就不会出现 ``IndexError`` 异常。比如: .. code-block:: python