局部变量

<1>什么是局部变量

如下图所示:

<2>小总结

  • 局部变量,就是在函数内部定义的变量
  • 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响
  • 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用

全局变量

<1>什么是全局变量

如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量

demo如下:

    # 定义全局变量
a = 100 def test1():
print(a) def test2():
print(a) # 调用函数
test1()
test2()

  

运行结果:

<2>全局变量和局部变量名字相同问题

看如下代码:

<3>修改全局变量

既然全局变量,就是能够在所以的函数中进行使用,那么可否进行修改呢?

代码如下:

<4>总结1:

  • 在函数外边定义的变量叫做全局变量
  • 全局变量能够在所有的函数中进行访问
  • 如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错
  • 如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,小技巧强龙不压地头蛇

<5>可变类型的全局变量

>>> a = 1
>>> def f():
... a += 1
... print a
...
>>> f()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in f
UnboundLocalError: local variable 'a' referenced before assignment
>>>
>>>
>>> li = [1,]
>>> def f2():
... li.append(1)
... print li
...
>>> f2()
[1, 1]
>>> li
[1, 1]

  

<5>总结2:

  • 在函数中不使用global声明全局变量时不能修改全局变量的本质是不能修改全局变量的指向,即不能将全局变量指向新的数据。
  • 对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用global时无法修改全局变量。
  • 对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用global时也可修改全局变量。

局部变量and全局变量的更多相关文章

  1. [Sass]局部变量和全局变量

    [Sass]局部变量和全局变量 Sass 中变量的作用域在过去几年已经发生了一些改变.直到最近,规则集和其他范围内声明变量的作用域才默认为本地.如果已经存在同名的全局变量,从 3.4 版本开始,Sas ...

  2. js方法入参或局部变量和全局变量重名,用来赋值全局变量会失败

    今天遇到个bug,最后终于知道原因了,js方法入参和全局变量重名,用入参赋值全局变量失败,就是说方法入参不能和全局变量重名. 现在下面的例子也说明,局部变量和全局变量不可以同名不光是入参,只要同名赋值 ...

  3. JavaScript局部变量和全局变量的理解

    原文链接:http://www.cnblogs.com/eric-qin/p/4166552.html JavaScript局部变量和全局变量的理解   1 2 3 4 5 6 7 8 9 10 &l ...

  4. 【C语言】C语言局部变量和全局变量

    目录: [局部变量] · 定义 · 作用域 · 生命周期 · 用static修饰局部变量 [全局变量] · 定义 · 作用域 · 生命周期 1.局部变量 · 定义 在函数(代码块)内部定义的变量称为局 ...

  5. JavaScript中局部变量与全局变量的不同

    JavaScript中局部变量与全局变量 我们知道,JavaScript的变量是松散型的变量,也就是说,其变量只需用var声明,其赋值的类型是不限定的.比如: var person=18; perso ...

  6. 理解LoadRunner中的局部变量和全局变量

    在C语言中,变量有效性的范围称变量的作用域.不仅对于形参变量,C语言中所有的量都有自己的作用域,按作用域范围不同,可分为局部变量和全局变量两种变量类型. 在LoadRunner中应用全局变量和局部变量 ...

  7. C语言局部变量和全局变量问题汇总

    1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变 ...

  8. C语言入门(9)——局部变量与全局变量

    变量有效性的范围称变量的作用域.C语言中所有的量都有自己的作用域.变量说明的方式不同,其作用域也不同. C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量.   局部变量 局部变量也称为内部 ...

  9. javascript 局部变量和全局变量

    刚开始学js,遇到了一个奇怪的问题,查找之后知道了答案 需要记住两句话 1 Javascript的变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分).切记,是f ...

  10. python的局部变量,全局变量,类变量,实例变量

    定义: a.全局变量:在模块内.在所有函数外面.在class外面,这就是全局变量. b.局部变量:在函数内.在class的方法内(未加self修饰的),这就是局部变量. c. 静态变量:在class内 ...

随机推荐

  1. 关于springboot

    概念 Spring的优缺点 1. 优点(AOP和IOC简化开发) Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品.无需开发重量级的E ...

  2. ASP.NET 实现重启系统或关机

    在C#程序中实现电脑的关机.重启,两种方法可以实现: 方法1:启动Shell进程,调用外部命令shutdown.exe来实现. 首先导入命名空间using System.Diagnostics;然后, ...

  3. CMD命令行合并多个txt文件到一个txt文件

    运行->输入CMD回车 输入: Copy G:\MyFolder\*.txt  G:\NewFolder\a.txt 回车即可 意思是将G:\MyFolder\下的所有txt文本内容复制到G:\ ...

  4. Maven上传jar包到私服

    1.认证,在M2_HOME/conf/settings.xml配置用户名密码 <server> <id>releases</id> <username> ...

  5. 类库、委托、is/as

    一.类库(Class Library) 定义:类库是一个综合性的面向对象的可重用类型集合,这些类型包括:接口.抽象类和具体类.(内容不可见) 类库建立:文件--新建--项目--类库--生成解决方案 类 ...

  6. nginx配置开机启动及配置sudo授权启动

    1.https://www.cnblogs.com/whatmiss/p/7091220.html        配置开机启动nginx 2.sudo授权其它用户启动 (1)root用户编辑 visu ...

  7. JavaScript进行简单的随即验证码生成(适合和我一样刚入门一本完整的教材书都没看完的弟弟)

    (感谢橙旭园给我打开了前端世界的大门) var checkcode = document.getElementById("code"); var btn = document.ge ...

  8. GridView Bind 短日期 格式

    ASP.NET的GridView控件的编辑模板中,需要绑定数据库中的某个字段,如<%# Bind("startTime","{0:d}") %> 在 ...

  9. SecureCRT显示乱码的解决办法

    下面来看看SecureCRT的显示出现乱码这种情况.比如: 现在我们重新设置一下 设置下图中的配置 1.选择字符编码为UTF-8. 2.设置字符集为GB2312后保存好后确认退出. 3.再次测试一下.

  10. django管理后台添加admin账号

    直接用命令行添加即可:python manage.py createsuperuser # python manage.py createsuperuser Username (leave blank ...