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

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

本文深入解析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 相关产品和应用

全部下载

专题列表