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


Posted in Python onApril 30, 2019

本文实例讲述了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声明(不要这样用:程序多处调用时会导致逻辑混乱,不利于调试)。

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、除了整数和字符串,列表、字典、集合、类中可以在子程序中(子函数)通过修改局部变量达到修改全局变量的目的。

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 相关文章推荐
Python的randrange()方法使用教程
May 15 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
Python 12306抢火车票脚本
Feb 07 Python
一份python入门应该看的学习资料
Apr 11 Python
python逆序打印各位数字的方法
Jun 25 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
Apr 25 Python
Python中Unittest框架的具体使用
Aug 27 Python
python实现矩阵和array数组之间的转换
Nov 29 Python
Jupyter notebook运行Spark+Scala教程
Apr 10 Python
Python tkinter实现日期选择器
Feb 22 Python
Python Django ORM连表正反操作技巧
Jun 13 Python
Python中使用Opencv开发停车位计数器功能
Apr 04 Python
Python一行代码实现快速排序的方法
Apr 30 #Python
python批量识别图片指定区域文字内容
Apr 30 #Python
Python3.5装饰器典型案例分析
Apr 30 #Python
python如何制作缩略图
Apr 30 #Python
Python3.5装饰器原理及应用实例详解
Apr 30 #Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 #Python
python制作图片缩略图
Apr 30 #Python
You might like
加速XP搜索功能堪比vista
2007/03/22 PHP
php实现单链表的实例代码
2013/03/22 PHP
在PHP中使用redis
2013/11/04 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
Linux中为php配置伪静态
2014/12/17 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
php生出随机字符串
2017/07/06 PHP
js类型检查实现代码
2010/10/29 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
js实现日历
2020/11/07 Javascript
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
深入Python函数编程的一些特性
2015/04/13 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
python tkinter界面居中显示的方法
2018/10/11 Python
python学习开发mock接口
2019/04/28 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
python 8种必备的gui库
2020/08/27 Python
肯尼迪就职演说稿
2013/12/31 职场文书
《只有一个地球》教学反思
2014/02/14 职场文书
任命书怎么写
2014/06/04 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
对讲机的最大通讯距离是多少
2022/02/18 无线电