原文: https://pythonbasics.org/scope/

变量在程序中具有一定的作用。 全局变量可以在程序中的任何位置使用,但是局部变量仅在特定区域(函数,循环)中已知

有时在项目中使用“作用域”一词:“其不在项目作用域之内”,表示不包括在内。 同样,变量可以在函数作用域之外。

示例:

简介

作用域与可以使用变量的位置有关。 如果定义了变量,则不一定在代码中的任何地方都可用。 函数中定义的变量只有在函数中才知道,除非您将其返回。

  1. def something():
  2. localVar = 1
  3. # this will crash because localVar is a local variable
  4. print(localVar)

这意味着除非您从函数返回变量,否则只能在其中使用它们。 这与全局变量形成了鲜明的对比:全局变量可以在任何地方使用,包括在多个函数和主代码中。 全局变量通常在程序顶部定义。

全局变量和局部变量

在下面的程序中,balance是一个全局变量。 它可以在代码中的任何地方使用。 但是变量x只能在addAmount内部使用。

  1. #!/usr/bin/env python3
  2. balance = 0
  3. def addAmount(x):
  4. global balance
  5. balance = balance + x
  6. addAmount(5)
  7. print(balance)

在视觉上是:

作用域 - 图1

我们有两个变量:balance,一个可以在任何地方使用的全局变量。x,只能在函数内部使用(在局部作用域之外未知)。

练习

请尝试以下练习:

  1. 添加函数subAmount以更改变量余额
  2. 创建带有局部变量的函数

下载示例