avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home Python中变量作用域
文章

Python中变量作用域

Posted 2024-08-13 Updated 2024-08- 14
By RWO.
6~7 min read

Python中的变量作用域。了解变量的作用域对于编写和调试Python代码至关重要。让我们详细了解一下吧!

什么是变量作用域

在Python中,变量的作用域决定了变量的可访问范围。主要有四种作用域:局部作用域(Local)、嵌套作用域(Enclosed)、全局作用域(Global)和内置作用域(Built-in),简称LEGB规则。

注意

内置作用域包含了Python提供的所有内置函数和变量,如print、len、range等,这些函数和变量在任何地方都可以使用,不受局部或全局作用域的限制。

局部作用域(Local Scope)

局部作用域指的是在函数内部定义的变量,只在函数内部可访问。

def local_scope_example():
    local_var = "我是局部变量"
    print(local_var)

local_scope_example()
# print(local_var)  # 这行代码会报错,因为local_var在函数外部不可访问

在这个例子中,local_var是局部变量,只在local_scope_example函数内部可访问。

嵌套作用域(Enclosed Scope)

嵌套作用域指的是在嵌套函数中,内部函数可以访问外部函数的变量。

def outer_function():
    outer_var = "我是外部变量"

    def inner_function():
        print(outer_var)
    
    inner_function()

outer_function()

在这个例子中,inner_function可以访问outer_function中的变量outer_var。

全局作用域(Global Scope)

全局作用域指的是在模块级别定义的变量,整个模块内都可以访问。

global_var = "我是全局变量"

def global_scope_example():
    print(global_var)

global_scope_example()
print(global_var)

在这个例子中,global_var是全局变量,函数内部和外部都可以访问。

内置作用域(Built-in Scope)

内置作用域指的是Python内置的变量,例如函数print和len等。

print("Hello, world!")
print(len([1, 2, 3]))

在这个例子中,print和len函数是Python内置的,可以在任何地方访问。

global 关键字

global关键字用于在函数内部声明全局变量。

global_var = "我是全局变量"

def modify_global_var():
    global global_var
    global_var = "修改后的全局变量"

modify_global_var()
print(global_var)

在这个例子中,使用global关键字在函数内部修改全局变量。

nonlocal 关键字

nonlocal关键字用于在嵌套函数中声明外部非全局变量。

def outer_function():
    outer_var = "我是外部变量"

    def inner_function():
        nonlocal outer_var
        outer_var = "修改后的外部变量"

    inner_function()
    print(outer_var)

outer_function()

在这个例子中,使用nonlocal关键字在内部函数中修改外部变量outer_var。

LEGB规则

Python查找变量的顺序遵循LEGB规则:

  1. Local(局部作用域)
  2. Enclosed(嵌套作用域)
  3. Global(全局作用域)
  4. Built-in(内置作用域)

总结

总结一下,Python中的变量作用域分为局部作用域、嵌套作用域、全局作用域和内置作用域。理解这些作用域及其查找顺序(LEGB规则)对于编写和调试Python代码非常重要。

短视频
每日一点 短视频 Python
License:  CC BY 4.0
Share

Further Reading

Nov 3, 2024

什么是 python 的闭包

在 Python 中,闭包(Closure)是一种函数对象,它不仅包含了函数的代码,还包含了函数创建时的环境变量。这意味着闭包可以“记住”其外部作用域中的变量,即使在外部作用域已经结束后,闭包仍然可以访问这些变量。 函数可以访问他被创建时所处的上下文环境,这被称为闭包。 闭包的基本特征 嵌套函数:闭

Nov 2, 2024

使用argparse模块解析命令行参数

在 Python 中,argparse 模块用于解析命令行参数,使得脚本可以更灵活地接受用户输入。以下是如何使用 argparse 模块解析命令行参数的详细介绍和示例。 基本用法 示例:简单的命令行参数解析 首先,创建一个简单的脚本来解析命令行参数。我们将创建一个脚本,该脚本接受两个整数并打印它们的

Nov 1, 2024

Python中的二维码生成与解析(花里胡哨)

如何使用 qrcode 库生成各种有趣的二维码,包括彩色二维码、带 Logo 的二维码和动态 GIF 二维码。下面,我们将逐步介绍这些功能。 Qrcode 库简介 qrcode 库是一个强大的 Python 工具,用于生成二维码。除了基本的二维码,它还支持自定义功能,如颜色变化、样式设计和动画效果。

OLDER

file文件对象

NEWER

Python 中 海象运算符

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy