c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python 变量作用域详解

更新时间:2023-07-14

什么是变量作用域?

在 Python 中,每个变量都有一个作用域,作用域指的是变量生效的范围。Python 中有两种类型的作用域,即全局作用域和局部作用域。

全局作用域

全局变量是在函数外定义的变量,可以在程序的任何地方进行访问。全局变量的作用域是整个程序,包括各个函数中。

x = 10 # 全局变量

def example():
  print(x) # 可以在函数内访问全局变量

print(x) # 输出:10
example() # 输出:10

局部作用域

局部变量是在函数内部定义的变量,只在函数内部生效。当函数执行结束后,局部变量也随之销毁。

def example():
  y = 5 # 局部变量
  print(y)

example() # 输出:5

# 在函数外部访问局部变量会报错
print(y) # 报错:NameError: name 'y' is not defined

global 关键字

当需要在函数内部修改全局变量时,需要使用 global 关键字。

x = 10 # 全局变量

def example():
  global x # 声明 x 为全局变量
  x = 5 # 修改全局变量 x
  print(x)

print(x) # 输出:10
example() # 输出:5
print(x) # 输出:5

nonlocal 关键字

当需要在函数内部修改嵌套函数的变量时,需要使用 nonlocal 关键字。

def outer():
  x = 10 # 外部变量

  def inner():
    nonlocal x # 声明 x 为外部变量
    x = 5 # 修改外部变量 x
    print(x)

  inner()
  print(x)

outer() # 输出:5 5