Python全局变量与局部变量区别及用法分析
本文实例讲述了Python全局变量与局部变量区别及用法。分享给大家供大家参考,具体如下:
对于很多初学的同学,对全局和局部变量容易混淆,看看下面给大家的讲解相信都应该明白两者的区别了。
定义:
全局变量:在模块内、在所有函数的外面、在class外面
局部变量:在函数内、在class的方法内
下面来看看例子
一、函数内部调用全局变量
a="hello" #全局变量a def test(): global a#调用全局变量a b =a #test方法里之后再调用a时,都是全局的a print(b,a) test()
在test函数里调用全局变量a,看看运行后的结果
('hello', 'hello')
运行后都是全局变量的值hello
二、函数内部使用与全局变量同名的局部变量
a="hello" #全局变量a def test(): a="hell0 local" #定义了一个局部变量a b =a #test方法里之后再调用a时,都是局部的a print(b+",",a) test()
这里在函数test里面再定义了一个a,这个a就为局部变量了,之后在test里调用的a全都是局部的a。
看看运行结果:
('hell0 local,', 'hell0 local')
三、函数内部修改全局变量值
a="hello" #全局变量a def test(): global a a="hell0 global" #修改全局变量a的值 b =a #test方法之里后再调用a时,都是全局的a print(b+",",a) test()
在函数test里面先声明用的是全局的a,然后对a进行修改,就等于是修改了全局变量a的值。
看看运行结果:
('hell0 global,', 'hell0 global')
注:在方法内部的变量是在=号前面的,那肯定是局部变量。如果是第一次出现在=号后面的,那肯定是调用的全局变量;全局变量可以在函数里面调用,局部变量只能在对应的函数里面调用,在该函数外面任何地方都无法被调用。
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
相关推荐
-
Python3.5局部变量与全局变量作用域实例分析
本文实例讲述了Python3.5局部变量与全局变量作用域.分享给大家供大家参考,具体如下: 1.局部变量与全局变量定义: 在子程序(函数)中定义的变量称为:局部变量:在程序顶级(一开始)定义的变量称为:全局变量. 2.局部变量与全局变量作用域: 局部变量作用域:定义该变量的子程序:全局变量作用域:整个程序. 当局部变量与全局变量同名时,在定义局部变量的子程序内局部变量其作用:其他地方全局变量起作用. #!/usr/bin/env python # -*- coding:utf-8 -*- # A
-
从局部变量和全局变量开始全面解析Python中变量的作用域
理解全局变量和局部变量 1.定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量.在这种情况下,不论全局变量中是否用到该变量名,函数中使用的都是局部变量.例如: num = 100 def func(): num = 123 print num func() 输出结果是123.说明函数中定义的变量名num是一个局部变量,覆盖全局变量.再例如: num = 100 def func(): num += 100 print num func() 输出结果是:Unb
-
解析python的局部变量和全局变量
局部变量 什么是局部变量 通俗定义:函数内部定义的变量就叫局部变量. 话不多说,代码如下: def test1(): a = 300 # 定义一个局部变量a,并初始化300 print("--test1--修改前:a=%s" % a) a = 200 # 给变量a重新赋值200 print("--test1--修改后:a=%s" % a) def test2(): a = 400 # 定义另一个局部变量a,并初始化400 print("--test2--修
-
python 多进程共享全局变量之Manager()详解
Manager支持的类型有 list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue,Value和Array. 但当使用Manager处理list.dict等可变数据类型时,需要注意一个陷阱,即Manager对象无法监测到它引用的可变对象值的修改,需要通过触发__setitem__方法来让它获得通知. 而触发__setitem__方法比较直接的办法就是增加一个中间变量,如同在C语言中交换两个变量
-
Python 共享变量加锁、释放详解
一.共享变量 共享变量:当多个线程访问同一个变量的时候.会产生共享变量的问题. 例子: import threading sum = 0 loopSum = 1000000 def myAdd(): global sum, loopSum for i in range(1, loopSum): sum += 1 def myMinu(): global sum, loopSum for i in range(1, loopSum): sum -= 1 if __name__ == "__main
-
简单分析python的类变量、实例变量
1.类变量.实例变量概念 类变量: 类变量就是定义在类中,但是在函数体之外的变量.通常不使用self.变量名赋值的变量.类变量通常不作为类的实例变量的,类变量对于所有实例化的对象中是公用的. 实例变量: 实例变量是定义在方法中的变量,使用self绑定到实例上的变量,只是对当前实例起作用. 2.访问 类变量 在类的内部和外部类变量都可以直接使用className.类变量的形式访问.但是在类的内部,也可以使用self.类变量来访问,但是这个是用含义就不同了(后面使用代码验证). 实例变量 在类的内部
-
图解python全局变量与局部变量相关知识
这篇文章主要介绍了图解python全局变量与局部变量相关知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 了解全局变量和局部变量之前,我们先来了解一下作用域 a = 10 def func(): b = 20 def inner(): c = 30 以上面这个程序为例:打印a,b,c 可以看到只有a打印 10 ,b和c都报错,这就是作用域的问题. 我们把新创建的一个.py文件看做事一个模块,在模块内定义的变量,如a,就是这个模块的全局变量,作
-
Python 专题六 局部变量、全局变量global、导入模块变量
定义在函数内的变量有局部作用域,在一个模块中最高级别的变量有全局作用域.本文主要讲述全局变量.局部变量和导入模块变量的方法. 参考:<Python核心编程 (第二版)> 一. 局部变量 声明适用的程序的范围被称为了声明的作用域.在一个过程中,如果名字在过程的声明之内,它的出现即为过程的局部变量:否则出现即为非局部.例: def foo(x): print 'x = ',x x = 200 print 'Changed in foo(), x = ',x x = 100 foo(x) print
-
Python全局变量与局部变量区别及用法分析
本文实例讲述了Python全局变量与局部变量区别及用法.分享给大家供大家参考,具体如下: 对于很多初学的同学,对全局和局部变量容易混淆,看看下面给大家的讲解相信都应该明白两者的区别了. 定义: 全局变量:在模块内.在所有函数的外面.在class外面 局部变量:在函数内.在class的方法内 下面来看看例子 一.函数内部调用全局变量 a="hello" #全局变量a def test(): global a#调用全局变量a b =a #test方法里之后再调用a时,都是全局的a prin
-
Python Pandas pandas.read_sql_query函数实例用法分析
Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具.Pandas提供了大量能使我们快速便捷地处理数据的函数和方法.你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一.本文主要介绍一下Pandas中read_sql_query方法的使用. pandas.read_sql_query(sql,con,index_col = None,coerce_float =
-
Python中的is和id用法分析
本文实例讲述了Python中的is和id用法.分享给大家供大家参考.具体分析如下: (ob1 is ob2) 等价于 (id(ob1) == id(ob2)) 首先id函数可以获得对象的内存地址,如果两个对象的内存地址是一样的,那么这两个对象肯定是一个对象.和is是等价的.Python源代码为证. 复制代码 代码如下: static PyObject * cmp_outcome(int op, register PyObject *v, register PyObject *w) { int
-
Python类属性与实例属性用法分析
本文实例分析了Python类属性与实例属性用法.分享给大家供大家参考.具体如下: 类属性:类名.属性名 实例属性:实例.属性名 >>> class test(): ... ver=1 ... >>> a=test() >>> test.x=8 >>> a.__dict__ {} >>> a.x 8 >>> a.x=9 >>> a.__dict__ {'x': 9} 1.类的属性如何
-
Python列表推导式与生成器用法分析
本文实例讲述了Python列表推导式与生成器用法.分享给大家供大家参考,具体如下: 1. 先看两个列表推导式 def t1(): func1 = [lambda x: x*i for i in range(10)] result1 = [f1(2) for f1 in func1] print result1 def t2(): func2 = [lambda x, i=i: x*i for i in range(10)] result2 = [f2(2) for f2 in func2] pr
-
Python面向对象程序设计构造函数和析构函数用法分析
本文实例讲述了Python面向对象程序设计构造函数和析构函数用法.分享给大家供大家参考,具体如下: 构造函数和析构函数 1.构造方法的使用 很多类都倾向于将对象创建为有初始化状态.因此类可以定义一个名为init()的特殊方法(构造方法)来实例化一个对象. 构造方法也叫做构造器,是指当实例化一个对象(创建一个对象)的时候,第一个被自动调用的方法. 演示1:构造方法被调用的契机 class Person(): #构造方法 def __init__(self): print("构造函数被执行了&quo
-
Python实现程序的单一实例用法分析
本文实例讲述了Python实现程序的单一实例用法.分享给大家供大家参考.具体如下: 这里先使用win32ui.FindWindow查找窗口名字,如果不存在则会抛出一个异常 import wx import win32ui import win32con try: # 首先查找该程序是否已经运行 win = win32ui.FindWindow(None, '窗口名字') try: if win: win.ShowWindow(win32con.SW_SHOWNORMAL) except: pas
-
python中enumerate函数遍历元素用法分析
本文实例讲述了python中enumerate函数遍历元素用法.分享给大家供大家参考,具体如下: enumerate函数用于遍历序列中的元素以及它们的下标 示例代码如下: i = 0 seq = ['one', 'two', 'three'] for element in seq: print i, seq[i] i += 1 #0 one #1 two #2 three print '============' seq = ['one', 'two', 'three'] for i, elem
-
Java字符流与字节流区别与用法分析
本文实例讲述了Java字符流与字节流区别与用法.分享给大家供大家参考,具体如下: 字节流与字符流主要的区别是他们的的处理方式 流分类: 1.Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先. 2.Java的字符流 Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先. InputStream,OutputStream,Reader,writer都是抽象类.所以不能直接new 字节流是最基本的,所有的Inpu
随机推荐
- 云服务器下搭建ASP.NET Core环境
- 利用AOP实现SqlSugar自动事务
- 使用jquery自定义鼠标样式满足个性需求
- javascript实现倒计时(精确到秒)
- 错误:sem_union的存储大小未知问题的解决方法
- Android实现仿网易新闻主界面设计
- bootstrap datepicker限定可选时间范围实现方法
- 让PHP显示Facebook的粉丝数量方法
- PHP使用mkdir创建多级目录的方法
- Javascript类型系统之undefined和null浅析
- Centos7.2 编译安装PHP7.0.2的步骤
- jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
- Python3控制路由器——使用requests重启极路由.py
- Android开发之串口编程原理和实现方式
- c# dataTable 合并两个列到一个新列中的简单实例
- Android实现手势密码功能
- python指定写入文件时的编码格式方法
- 浅谈java 中文件的读取File、以及相对路径的问题
- 深入学习python多线程与GIL
- SpringMVC请求的路径变量里面写正则表达式的方法