擅长:python、mysql、java
<p>在函数中定义变量时,它是函数的局部变量。这称为<em>局部范围</em>。有几种方法可以解决这个问题。您需要的是<em>全局范围</em>,您可以在Python中这样做:</p>
<pre><code>def funa():
global a
global b
a=10
b=20
funb()
</code></pre>
<p>呸!太乱了!是的,有充分的理由。这是个糟糕的设计。一般来说,以这种方式使用全局变量是一种不好的做法,因为这两个函数现在不仅与它们自己联系在一起,而且与程序的其余部分联系在一起。良好的设计是,它们是<em>封装的</em>,即它们是独立的:</p>
<pre><code>def funa():
a=10
b=20
funb(a, b)
def funb(a, b):
c=a+b
print(c)
</code></pre>
<p>为什么?因为现在<code>funa()</code>和<code>funb()</code>可以在其他地方使用。我们甚至不必再调用这些值<code>a</code>和<code>b</code>。我现在可以从其他函数中使用<code>funb()</code>中的善。如果我把<code>funb()</code>放到一个模块中,我甚至可以在其他程序中使用它。这意味着我们不必两次编写相同的代码(原则称为DRY-不要重复自己)。如果你的代码是独立的,那么你有更大的机会可以重用它。你知道吗</p>