擅长:python、mysql、java
<p>我可能会:</p>
<pre><code>import signal
for sig in ("SIGINT", "SIGTERM", "SIGQUIT", "SIGILL", "SIGPIPE"):
sig = getattr(signal,sig)
signal.signal(sig, signal_handler)
</code></pre>
<p>当您做一个简单的<code>import signal</code>时,所有的信号句柄都可以在当前名称空间中找到<code>signal.SIGNALNAME</code>(例如<code>signal.SIGQUIT</code>)。这和:</p>
^{pr2}$
<hr/>
<p>当然,您可以在尝试以下操作时将它们直接导入当前命名空间:</p>
^{3}$
<p>但是<code>signal</code>函数在当前名称空间中被称为简单的<code>signal</code>(而不是<code>signal.signal</code>)。因此,使用该导入,可以执行以下操作:</p>
<pre><code>for sig in (SIGINT, SIGTERM, SIGQUIT, SIGILL, SIGPIPE):
signal(sig, signal_handler)
</code></pre>
<p>然而,我发现这一点不太清楚。<code>signal</code>是模块还是函数?也许这并不难理解(毕竟,你不能<em>调用</em>一个模块),但另一种方式很明显。在</p>