zoukankan      html  css  js  c++  java
  • 图解Python变量与赋值(转)

    原文:https://blog.csdn.net/zv3e189os5c0tsknrbcl/article/details/78301311


    学过C的都知道,给变量赋值时,需要先指定数据类型,同时会开辟一块内存区域,用于存储值,例如:

    int a = 1;
    

    a 就是内存空间中的一小块区域,就像是一个大房间里面的一个小盒子,赋值就是把整数1装载到盒子里面。

    现在给变量a重新赋值

    a = 2;
    

    盒子依然是那个盒子,也就是说内存地址没有变,只是该段内存中的值变了,变成了2。

    再来看:

    int b = a;
    

    当把变量a赋值给另外一个变量b时,相当于把值拷贝了一份传递给变量b,b是新开辟的一段内存区域


    而在Python中,“变量”的严格叫法是“名字(name)”,也可以理解为标签,就像我们人的姓名一样,名字就是挂在人身上的一个标签。

    在Python中,给变量赋值就是相当于给对象贴标签,就像我们给人取名字一样,变量本身是没有任何意义的,它没有类型信息,真正的信息都在对象身上。

    如果写一个:

    a = 1
    

    Python内部首先会分配一段内存空间用于创建整数对象1,然后给这个1贴上名为a的标签。

    再执行:

    a = 2
    

    Python接着会在另一块内存区域创建整数对象2,然后把标签a从1身上撕下来贴在2身上,此时,我们没法再通过a来得到1这个值了。

    现在把名字a赋值给另外一个名字b:

    b = a
    

    相当于在刚才的2身上又贴了一个新的标签b,注意,这里和C语言是完全不一样的,定义b的时候不需要分配内存空间,这样我们既可以通过a来访问2也可以通过b来访问2,访问的都是同一个对象,就好比我们给宝宝取名时既有小名也有大名,其实叫的都是同一个人。

    虽然我们通常在Python中还是用”变量”的叫法(因为在编程语言中这是一种通用叫法),但是我们需要理解Python中的变量不同于其他语言,变量只是一个名字。

  • 相关阅读:
    接口隔离原则(Interface Segregation Principle)ISP
    依赖倒置(Dependence Inversion Principle)DIP
    里氏替换原则(Liskov Substitution Principle) LSP
    单一指责原则(Single Responsibility Principle) SRP
    《面向对象葵花宝典》阅读笔记
    智能手表ticwatch穿戴体验
    我所理解的软件工程
    RBAC基于角色的权限访问控制
    程序员健康指南阅读笔记
    我晕倒在厕所了
  • 原文地址:https://www.cnblogs.com/wbyixx/p/14072648.html
Copyright © 2011-2022 走看看