写点什么

Python 作用域:局部作用域、全局作用域和使用 global 关键字

作者:小万哥
  • 2023-10-28
    广东
  • 本文字数:776 字

    阅读完需:约 3 分钟

Python 作用域:局部作用域、全局作用域和使用 global 关键字

变量只在创建它的区域内可用。这被称为作用域。

局部作用域

在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用。


示例:在函数内部创建的变量在该函数内部可用:


def myfunc():  x = 300  print(x)
myfunc()
复制代码

函数内部的函数

如上面的示例所解释的那样,变量 x 在函数外部不可用,但可以在函数内部的任何函数中使用:


示例:局部变量可以从函数内部的函数中访问:


def myfunc():  x = 300  def myinnerfunc():    print(x)  myinnerfunc()
myfunc()
复制代码

全局作用域

在 Python 代码的主体部分创建的变量是全局变量,属于全局作用域。全局变量可以在任何作用域中使用,包括全局作用域和局部作用域。


示例:在函数外部创建的变量是全局的,并且可以被任何人使用:


x = 300
def myfunc(): print(x)
myfunc()
print(x)
复制代码

变量命名

如果在函数内部和外部使用相同的变量名称,Python 将把它们视为两个不同的变量,一个在全局作用域(函数外部)中可用,另一个在局部作用域(函数内部)中可用:


示例:该函数将打印局部变量 x,然后代码将打印全局变量 x:


x = 300
def myfunc(): x = 200 print(x)
myfunc()
print(x)
复制代码

global 关键字

如果需要创建一个全局变量,但又受限于局部作用域,可以使用 global 关键字。global 关键字将变量声明为全局变量。


示例:如果使用 global 关键字,变量将属于全局作用域:


def myfunc():  global x  x = 300
myfunc()
print(x)
复制代码


此外,如果您希望在函数内部更改全局变量的值,也可以使用 global 关键字。


示例:要在函数内部更改全局变量的值,请使用 global 关键字引用该变量:


x = 300
def myfunc(): global x x = 200
myfunc()
print(x)
复制代码

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。


看完如果觉得有帮助,欢迎点赞、收藏关注



发布于: 刚刚阅读数: 5
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
Python 作用域:局部作用域、全局作用域和使用 global 关键字_Python_小万哥_InfoQ写作社区