<p>嗯。。。这真的取决于上下文。最后,它将<a href="http://docs.python.org/2/library/functions.html#slice" rel="nofollow noreferrer">^{<cd1>}</a>对象(<code>slice(None,None,None)</code>)传递给以下方法之一:<a href="http://docs.python.org/2/reference/datamodel.html#object.__getitem__" rel="nofollow noreferrer">^{<cd3>}</a>、<a href="http://docs.python.org/2/reference/datamodel.html#object.__setitem__" rel="nofollow noreferrer">^{<cd4>}</a>或<a href="http://docs.python.org/2/reference/datamodel.html#object.__delitem__" rel="nofollow noreferrer">^{<cd5>}</a>。(实际上,如果对象有一个<a href="http://docs.python.org/2/reference/datamodel.html#additional-methods-for-emulation-of-sequence-types" rel="nofollow noreferrer">^{<cd6>}</a>,那么它将被使用,而不是<code>__getitem__</code>,但是现在已经被弃用,不应该使用)。</p>
<p>对象可以对切片执行它们想要的操作。</p>
<p>在以下情况下:</p>
<pre><code>x = obj[:]
</code></pre>
<p>这将使用传入的slice对象调用<code>obj.__getitem__</code>。实际上,这完全等同于:</p>
<pre><code>x = obj[slice(None,None,None)]
</code></pre>
<p>(尽管前者可能更有效,因为它不必查找<code>slice</code>构造函数——它都是用字节码完成的)。</p>
<p>对于大多数对象,这是创建序列部分的浅层副本的一种方法。</p>
<p>下一步:</p>
<pre><code>x[:] = obj
</code></pre>
<p>是一种基于<code>obj</code>设置项(它调用<code>__setitem__</code>)的方法。</p>
<p>我想你大概可以猜到:</p>
<pre><code>del x[:]
</code></pre>
<p>呼叫;-)。</p>
<p>也可以传递不同的切片:</p>
<pre><code>x[1:4]
</code></pre>
<p>构造<code>slice(1,4,None)</code></p>
<pre><code>x[::-1]
</code></pre>
<p>构造<code>slice(None,None,-1)</code>等等。进一步阅读:<a href="https://stackoverflow.com/questions/509211/the-python-slice-notation">Explain Python's slice notation</a></p>