亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 全局、局部和非局部变量

Python 全局、局部和非局部变量

在本教程中,您将了解 Python 全局变量、局部变量、非局部变量以及使用它们的位置。

视频:Python 局部变量和全局变量

全局变量

在 Python 中,在函数之外或在全局范围内声明的变量称为全局变量。这意味着可以在函数内部或外部访问全局变量。

让我们看一个在 Python 中如何创建全局变量的示例。

示例 1:创建全局变量

x = "global"

def foo():
    print("x inside:", x)


foo()
print("x outside:", x)

输出

x inside: global
x outside: global

在上面的代码中,我们创建了 x 作为全局变量并定义了一个 foo() 打印全局变量 x .最后,我们调用foo() 这将打印 x 的值 .

如果要改变x的值怎么办 在函数内部?

x = "global"

def foo():
    x = x * 2
    print(x)

foo()

输出

UnboundLocalError: local variable 'x' referenced before assignment

输出显示错误,因为 Python 将 x 作为局部变量和 x 也没有在 foo() 内部定义 .

为了完成这项工作,我们使用 global 关键词。访问 Python 全局关键字了解更多信息。


局部变量

在函数体或局部范围内声明的变量称为局部变量。

示例2:访问作用域外的局部变量

def foo():
    y = "local"


foo()
print(y)

输出

NameError: name 'y' is not defined

输出显示错误,因为我们正在尝试访问局部变量 y 在全局范围内,而局部变量仅在 foo() 内有效 或本地范围。


让我们看一个关于如何在 Python 中创建局部变量的示例。

示例 3:创建局部变量

通常,我们在函数内部声明一个变量来创建一个局部变量。

def foo():
    y = "local"
    print(y)

foo()

输出

local

让我们看一下前面的问题,其中 x 是一个全局变量,我们想修改 x foo()里面 .


全局和局部变量

在这里,我们将展示如何在同一代码中使用全局变量和局部变量。

示例 4:在同一代码中使用全局变量和局部变量

x = "global "

def foo():
    global x
    y = "local"
    x = x * 2
    print(x)
    print(y)

foo()

输出

global global 
local

在上面的代码中,我们声明了 x 作为一个全局和 y 作为 foo() 中的局部变量 .然后,我们使用乘法运算符 * 修改全局变量 x 我们同时打印 xy .

调用foo()后 , x 的值 变成 global global 因为我们使用了 x * 2 打印两次 global .之后,我们打印局部变量 y 的值 即 local .


示例5:全局变量和局部变量同名

x = 5

def foo():
    x = 10
    print("local x:", x)


foo()
print("global x:", x)

输出

local x: 10
global x: 5

在上面的代码中,我们使用了同名x 对于全局变量和局部变量。当我们打印同一个变量时,我们会得到不同的结果,因为该变量是在两个作用域中声明的,即 foo() 内的局部作用域 和 foo() 之外的全局范围 .

当我们在 foo() 中打印变量时 它输出 local x: 10 .这称为变量的局部作用域。

同样,当我们打印 foo() 之外的变量时 ,它输出 global x:5 .这称为变量的全局作用域。


非局部变量

非局部变量用于未定义局部范围的嵌套函数。这意味着变量既不能在本地也不能在全局范围内。

让我们看一个 Python 中如何使用非局部变量的示例。

我们使用 nonlocal 创建非局部变量的关键字。

示例 6:创建非局部变量

def outer():
    x = "local"

    def inner():
        nonlocal x
        x = "nonlocal"
        print("inner:", x)

    inner()
    print("outer:", x)


outer()

输出

inner: nonlocal
outer: nonlocal

在上面的代码中,有一个嵌套的inner() 功能。我们使用 nonlocal 创建非局部变量的关键字。 inner() 函数定义在另一个函数outer()的范围内 .

注意 :如果我们改变一个非局部变量的值,变化就会出现在局部变量中。


Python

  1. C 变量、常量和文字
  2. Python 关键字和标识符
  3. Python 语句、缩进和注释
  4. Python 变量、常量和文字
  5. Python 类型转换和类型转换
  6. Python 输入、输出和导入
  7. Python 全局关键字
  8. Python 数字、类型转换和数学
  9. Python 目录和文件管理
  10. Python 错误和内置异常
  11. 如何在 Python 中获取当前日期和时间?
  12. Python 中的 type() 和 isinstance() 示例