Python3.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程序设计学习有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













