Python3.5局部变量与全局变量作用域实例分析

咖啡半糖
咖啡半糖
发布时间:2026-10-13| 5人浏览过
原创

本文深入解析Python3.5中局部变量与全局变量的定义及作用域规则。通过实例演示同名变量在不同作用域下的行为差异,重点讲解如何利用global关键字在函数内修改全局变量,并指出直接修改列表、字典等可变对象无需global声明的特性。

Python变量作用域概述

本文通过具体实例,详细解析Python3.5中局部变量与全局变量的作用域机制,旨在帮助读者深入理解并正确应用,供学习参考。

局部变量与全局变量的定义

1、局部变量与全局变量的定义

在子程序(如函数)内部定义的变量被称为局部变量;而在程序顶层(即所有函数外部)定义的变量则被称为全局变量。

变量作用域范围解析

2、局部变量与全局变量的作用域范围

局部变量的作用域仅限于定义该变量的子程序内部;而全局变量的作用域覆盖整个程序文件。

当局部变量与全局变量名称相同时,在定义该局部变量的子程序内部,局部变量优先生效;在子程序外部,则使用全局变量。

作用域示例代码分析


#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
school = "Qing hua"    #全局变量
def change_name(name):
  school = "Bei da"  #局部变量
  print(school)
  print("before change:",name)
  name = "LIU"  #局部变量,只在函数内部生效(局部变量的作用域就是定义该变量的子程序)
  print("after change:",name)
print(school)
name = "liu"    #全局变量,在整个程序中都有效
change_name(name)
print(name)

运行结果:

Qing hua Bei da before change: liu after change: LIU liu

使用global修改全局变量

注意:若需在函数内部修改全局变量的值,必须使用global关键字进行声明(不建议随意使用,因为在多处调用时可能导致逻辑混乱,增加调试难度)。

global关键字应用示例


school = "Qing hua"    #全局变量
def change_name(name):
  print("before change:",name)
  name = "LIU"  #局部变量,只在函数内部生效(局部变量的作用域就是定义该变量的子程序)
  print("after change:",name)
  global school    # 函数内将局部变量改为全局变量用global声明
  school = "Bei da"
name = "liu"    #全局变量,在整个程序中都有效
change_name(name)
print(name)
print("school:",school)

运行结果:

before change: liu after change: LIU liu school: Bei da

可变对象的全局变量修改

3、对于整数和字符串等不可变类型之外的对象(如列表、字典、集合、类实例),可以在子程序中通过修改局部变量来间接修改全局变量,无需使用global声明。

列表修改示例


names = ["liu","zhang","wang"]
def chang_name():
  names[0] = "sun"
  print(names)
chang_name()
print(names)

运行结果:

['sun', 'zhang', 'wang'] ['sun', 'zhang', 'wang']

补充:在Python编辑器中,使用Ctrl+?快捷键可以快速实现多行注释。

对Python感兴趣的其他读者,可参考本站相关专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》。

希望本文所述内容能对您的Python程序设计学习有所帮助。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。