如何在局部作用域内使用全局变量? ------------------------------------- Python中,有全局变量和局部变量之分。 在程序遇到一个变量标识符的话他会按照这样的顺序进行搜索:本地作用域(即函数作用域), 全局作用域和内置作用域。所以我们的局部变量会覆盖全局和内置的变量或函数。 从全局变量的视点来看: 在局部作用域里面,如果修改全局变量,则需要事先使用global进行声明,表示其使用的是全局变量。 如果仅使用全局变量的值,不修改他的值,则可以直接引用全局变量。不用特别声明。 从函数的视点来看: 函数内部仅引用其变量值的都是全局变量。在函数作用域内要赋值的变量都是局部变量,除非用global来 声明。 示例1如下::: s = "hongkong" def fn(): s = "beijing" print(s) fn() print(s) 函数fn中的变量s为局部变量,另外一个s为全局变量,对局部变量的修改,不影响全局变量。 输出内容为:: beijing hongkong 示例2如下:: s = "hongkong" def fn(): print(s) s = "beijing" print(s) fn() print(s) 在函数内部引用的是局部变量还是全局变量并不清楚,在函数fn内部首先是使用,再是赋值。 没有说明全局变量,就是局部变量,但在局部变量赋值之前又有使用。因此执行后会输出以下错误, UnboundLocalError: local variable 's' referenced before assignment 我们要修改为引用全局变量就需要在函数的第一行增加global s