<p><strong>为什么我们要在函数中两次提到类数据集?</strong></p>
<p>第一次</p>
<pre><code>class Dataset:
pass
</code></pre>
<p>类已定义</p>
<p>第二个是:</p>
<pre><code>data_sets = Dataset()
</code></pre>
<p>将创建此类(对象)的实例。正如OP写的:</p>
<blockquote>
<p>After defining a class we simply create objects.</p>
</blockquote>
<p>因为<code>class</code>只是一个python语句,所以它可以在任何地方使用:包括函数体,比如在本例中。因此在这里,每次调用函数<code>read_data_set()</code>时都会定义类,如果没有调用,则根本不定义。你知道吗</p>
<hr/>
<p><strong>pass语句的作用是什么?</strong></p>
<p>在这个例子中</p>
<pre><code>class Dataset:
pass
</code></pre>
<p><code>pass</code>语句意味着定义一个没有添加成员的类。这意味着类及其对象只包含一些由任何类从<code>object</code>派生的“默认”函数和变量(即方法和字段)。你知道吗</p>
<hr/>
<p>通常,当您引入一个新的块并想将其留空时,会使用<code>pass</code>:</p>
<pre><code>expression:
pass
</code></pre>
<p>必须在块中至少包含一条指令,这就是为什么有时需要<code>pass</code>来表示不想在块中执行任何操作。函数也是如此:</p>
<pre><code>def do_nothing():
pass # function that does nothing
</code></pre>
<p>循环:</p>
<pre><code>for i in collection: # just walk through the collection
pass # but do nothing at each iteration
</code></pre>
<p>异常处理:</p>
<pre><code>try:
do_something()
except SomeException:
pass # silently ignore SomeException
</code></pre>
<p>上下文管理器:</p>
<pre><code>with open(filename): # open a file but do nothing with it
pass
</code></pre>