Python:Python 中的变量到底是什么

1. 变量的概念

  • 用标识符命名的存储单元的地址称为变量;
  • 变量是用来存储数据的,通过标识符可以获取变量的值,也可以对变量进行赋值;

    2. 变量三要素

  • 变量是有三部分构成,变量名、赋值符号、变量值,示例如下:
    # 变量名   赋值符号   变量值
    name        =      "Tom"
    
  • 变量名
    • name
    • 当变量定义的时候,会在内存中申请一块空间专门用来存放变量值,而变量名就是这个空间的 门牌号,能方便的找到这块内存空间;
  • 赋值符号
    • == 号;
    • 它的意义是将右侧的变量值内存地址绑给左侧的变量名,当赋值动作完成后,变量名所指向的存储单元存储了被赋的值;
    • 在Pyhton语言中赋值操作符为“=、+=、-=、*=、/=、%=、**=、//=”;
  • 变量值
    • “Tom” 这个字符串;
    • 变量值就是内存区域的状态,被修改为 “Tom” 这个字符串,定义之后可以用变量名来访问这个字符串;
    • 变量值有一个 引用次数,一旦这块空间被引用次数为 0,就意味着我们没有途径能找到这块空间了,此时如果不对其进行清理,就会导致内存被占用;
    • 系统找不到这块空间时,就会触发Python的内存管理 垃圾回收机制,对该空间进行回收在利用;

      3. 变量三特性

  • id
    • 就是变量值得内存空间地址,每一个值都有唯一一个id;
    • 内存地址不同,id就不相同;
    • 可以使用 id() 来查看变量的内存地址。
  • type
    • 不同类型的值记录事物的状态有所不同,这就是Python的数据类型,如 str、int 等;
    • 可以使用type()来查看。
  • 变量值
    • 变量值就是存储值的本身。
  • Python 和 Java 中 变量的区别
    • Java 中声明变量的时候,会在内存中开辟一个内存区域,这个区域的大小根据变量的类型不同而不同;
    • Python 中变量实质上是一个指针,先把变量的赋值(入一个整数)创建好,然后把变量的指针指向创建好的区域。这类似于 便利贴,变量本身没有类型,赋值才有类型,变量只是贴在赋值上的一个 “便利贴” 而已;

4. 变量操作示例

  • 查看变量三特性 ```

    a = “hello” # 赋值 id(a) # 查看 id 2280593916592 type(a) # 查看 type

<class ‘str’>

print(a) # 查看值 hello

- 多变量指向同一内存区域
  - 有如下代码和执行结果;

a = [1, 2, 3] b = a b.append(4) print(a) [1, 2, 3, 4] ```

  • 通过上面的示例我们发现,我们将 a 赋值给 b 以后,对 b 的 append 操作直接影响了 a,导致 a 也跟着 append 一个 4 元素;
  • 这从侧面说明 a 和 b 两个变量指向同一块内存区域。