⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch07s03.html

📁 《简明 Python 教程》为 "A Byte of Python" 的唯一指定简体中文译本
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css"><!--@import url(stylesheet/text.css);@import url(stylesheet/box.css);--></style><title>简明 Python 教程 / 函数 / 局部变量 </title></head><body><table width="100%"><tr><th colspan="3" align="center"><span class="header">简明 Python 教程</span></th></tr><th colspan="3" align="center">第7章 函数</th><tr><th width="20%" align="left"><a href="ch07s02.html">上一页</a></th><th width="60%" align="center"><span class="header2">局部变量</span></th><th align="right"><a href="ch07s04.html">下一页</a></th></tr></table><hr noshade><h1>局部变量</h1><p>当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 <dfn>局部</dfn> 的。这称为变量的 <dfn>作用域</dfn> 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。</p><h2><a name="local">使用局部变量</a></h2><p class="exampletitle"><a name="e73">例7.3 使用局部变量</a></p><p class="filebox"><code class="comment">#!/usr/bin/python<br># Filename: func_local.py</code><br><br><code class="key">def </code><code class="func">func</code><code>(x):</code><br><code class="key">&nbsp;&nbsp;&nbsp;&nbsp;print </code><code class="cite">'x is'</code><code>, x</code><br><code>&nbsp;&nbsp;&nbsp;&nbsp;x = </code><code class="cite">2</code><br><code class="key">&nbsp;&nbsp;&nbsp;&nbsp;print </code><code class="cite">'Changed local x to'</code><code>, x</code><br><br><code>x = </code><code class="cite">50</code><br><code>func(x)</code><br><code class="key">print </code><code class="cite">'x is still'</code><code>, x</code></p><p>(源文件:<a href="code/func_local.py">code/func_local.py</a>)</p><h2>输出</h2><p class="codebox"><code>$ python func_local.py<br>x is 50<br>Changed local x to 2<br>x is still 50</code></p><h2>它如何工作</h2><p>在函数中,我们第一次使用<code>x</code>的 <dfn>值</dfn> 的时候,Python使用函数声明的形参的值。</p><p>接下来,我们把值<code>2</code>赋给<code>x</code>。<code>x</code>是函数的局部变量。所以,当我们在函数内改变<code>x</code>的值的时候,在主块中定义的<code>x</code>不受影响。</p><p>在最后一个<code>print</code>语句中,我们证明了主块中的<code>x</code>的值确实没有受到影响。</p><h2><a name="global">使用global语句</a></h2><p>如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 <dfn>全局</dfn> 的。我们使用<code>global</code>语句完成这一功能。没有<code>global</code>语句,是不可能为定义在函数外的变量赋值的。</p><p>你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用<code>global</code>语句可以清楚地表明变量是在外面的块定义的。</p><p class="exampletitle"><a name="e74">例7.4 使用global语句</a></p><p class="filebox"><code class="comment">#!/usr/bin/python<br># Filename: func_global.py</code><br><br><code class="key">def </code><code class="func">func</code><code>():</code><br><code class="key">&nbsp;&nbsp;&nbsp;&nbsp;global </code><code>x</code><br><br><code class="key">&nbsp;&nbsp;&nbsp;&nbsp;print </code><code class="cite">'x is'</code><code>, x</code><br><code>&nbsp;&nbsp;&nbsp;&nbsp;x = </code><code class="cite">2</code><br><code class="key">&nbsp;&nbsp;&nbsp;&nbsp;print </code><code class="cite">'Changed local x to'</code><code>, x</code><br><br><code>x = </code><code class="cite">50</code><br><code>func()</code><br><code class="key">print </code><code class="cite">'Value of x is'</code><code>, x</code></p><p>(源文件:<a href="code/func_global.py">code/func_global.py</a>)</p><h2>输出</h2><p class="codebox"><code>$ python func_global.py<br>x is 50<br>Changed global x to 2<br>Value of x is 2</code></p><h2>它如何工作</h2><p><code>global</code>语句被用来声明<code>x</code>是全局的——因此,当我们在函数内把值赋给<code>x</code>的时候,这个变化也反映在我们在主块中使用<code>x</code>的值的时候。</p><p>你可以使用同一个<code>global</code>语句指定多个全局变量。例如<code>global x, y, z</code>。</p><hr noshade><table width="100%"><tr><th width="20%" align="left"><a href="ch07s02.html">上一页</a></th><th width="60%" align="center"><a href="ch07.html">上一级</a></th><th width="20%" align="right"><a href="ch07s04.html">下一页</a></th></tr><tr><th width="20%" align="left">函数形参</th><th width="60%" align="center"><a href="index.html">首页</a></th><th align="right">默认参数值</th></tr></table></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -