擅长:python、mysql、java
<p>当您使用星号作为参数的修饰符时,它将允许您在调用函数时传递任意多个参数。你知道吗</p>
<pre class="lang-py prettyprint-override"><code>def test(*args):
# Do anything
test(v1)
test(v1, arg, another, something)
test()
</code></pre>
<p>它将把调用中的所有参数连接到一个元组中。你知道吗</p>
<p>当您只需将一个参数传递给函数调用时,元组参数将只包含这一个参数,而不管此对象实际具有什么类。只需在迭代之前进行打印。然后您将看到<code>args</code>的实际值,其解析为:</p>
<p><code>([['x_1', 'x_2', 'x_3'], []],)</code></p>
<hr/>
<p>如果您想将iterable传递给函数,并将第一层的元素展开到参数中,只需在调用时再次使用星号即可。你知道吗</p>
<pre class="lang-py prettyprint-override"><code>>> test(*testTuple1)
['x_1', 'x_2', 'x_3']
'x_1'
'x_2'
[]
IndexError: ....
</code></pre>
<hr/>
<p>索引器发生了,因为空列表没有第0个元素,甚至没有第一个要获取的元素。你知道吗</p>