美文网首页
变量、局部变量和全局变量

变量、局部变量和全局变量

作者: 岑洋 | 来源:发表于2018-11-29 10:50 被阅读0次

自学整理记录,大神见笑

变量的进阶

  • 变量和数据都是保存在内存当中
  • Python中的函数的参数传递以及返回值都是靠引用传递的

引用

  • 变量和数据是分开保存的,数据存储在内存中的一个位置,变量记录的是数据在内存中的地址值,变量记录数据的地址值,叫做引用
  • 注:使用id()函数可以查看变量的引用
  • 函数调用传的实参实际上是传的是变量的引用,即内存中的地址值

可变和不可变类型

  • 不可变类型,内存中的数据不允许被修改
    1.数字型int,bool,float,complex,long(2.x)
    2.字符型str
    3.元组tuple

  • 可变类型,内存中的数据可以被修改
    1.列表list
    2.字典dict

  • 可变类型的数据修改是通过方法来实现的,比如append,extend,pop,clear,remove等,这样并不会修改其引用

  • 如果给一个可变类型的变量,赋值一个新的数据,那么其引用会被修改

  • 字典中的key只能是不可变类型的变量

哈希(hash)

  • Python中内置一个叫hash的函数,它接收一个不可变类型的数据做参数,然后返回一个整数
  • 哈希是一种算法,其作用是提取数据的特征码,特征码唯一;这个算法的特点是相同的内容得到相同的结果,不同的内容得到不同的结果
  • 设置字典的键值对时,系统会首先对key进行hash函数的算法,然后决定符合在内存中保存字典的数据,这是为了后续对字典的增删改查操作
    1.字典的key必须不可变类型
    2.字典的value可以任意类型

局部变量和全局变量

  • 局部变量是函数内部定义的变量,只能在函数内部使用
  • 全局变量是在函数外部定义的变量,所有函数内部都可以使用这个变量
  • 注意:大多不推荐使用全局变量,可变范围太大,不易维护

局部变量

  • 函数执行后,局部变量会被系统回收
  • 不同的函数可以定义同名的局部变量,相互不影响
  • 作用是在函数内部临时保存数据

全局变量

  • 全局变量是函数外定义的,所有函数均可使用
  • 如果函数内部定义了与全局变量同名的局部变量,则就近原则,使用局部变量
  • 如果需要在函数内部修改全局变量的值,则在变量之前用关键字global声明一下变量即可
  • 全局变量命名可用g_gl_前缀,以区分局部同名变量

代码结构

程序结构.jpg

相关文章

  • python

    函数内全局变量赋值 Python中有局部变量和全局变量,当局部变量名字和全局变量名字重复时,局部变量会覆盖掉全局变...

  • Swift-全局变量、局部变量以及类型属性

    全局变量和局部变量 全局变量和局部变量 计算属性和属性观察器所描述的功能也可以用于全局变量和局部变量。全局变量是在...

  • C语言特性(局部变量和全局变量)

    局部变量和全局变量 局部变量 局部变量根据定义形式的不同,又分为如下三种。 全局变量 在一个函数内部,如果全局变量...

  • 15 C变量的作用域

    1、局部变量和全局变量

  • 9道常见C语言面试题

    1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量...

  • JavaScript变量、函数和变量提升

    一.变量的作用域 变量分为全局变量和局部变量 全局变量: 局部变量:

  • python基础

    1.局部变量、全局变量 在函数内部修改全局变量时局部变量会创建一个和全局变量一样名称的局部变量,在更改的时候只会更...

  • C/C++知识点分享(16)

    1、statac全局变量、局部变量、函数与普通全局变量、局部变量、函数,static全局变量与普通的全局变量有什么...

  • 第10天C语言(00):笔记总结

    01-全局变量和局部变量-基本概念 02-内部全局变量和外部全局变量 03-static对局部变量-作用 04-s...

  • C的自我修养

    关于全局变量、局部变量和static 变量有全局变量、局部变量之分。全局变量的作用域是从声明的那一行开始,默认是可...

网友评论

      本文标题:变量、局部变量和全局变量

      本文链接:https://www.haomeiwen.com/subject/egcrqqtx.html