首页 > 编程语言 > 详细

06 Python - Python变量

时间:2019-06-05 20:38:41      阅读:89      评论:0      收藏:0      [点我收藏+]

   在讲Python变量前,了解一下Python内部运行的环节:

   Python代码到机器码,中间经过了解析器和PVM

    解析器:对Python代码进行了编译,编译成字节码的内容,字节码以*.pyc结尾

    PVM:字节码再编译成机器码,

      技术分享图片

 

1.    Python的概念层级

    概念层级即程序

    表达式:创建、处理对象

    语句:建立在表达式之上

    模块:语句太多,放到一起形成模块

    程序:模块也不止一个,

2.    变量

    Python的变量前面没有写类型,类型由实际类型值决定

    技术分享图片

变量概述

    变量名:a和name

    对象:具体的值,如20.0  ‘Tom’

    系统类型:Python系统内部维护的类型

    引用:a指向Tom的箭头就是引用,

    Python数据类型只与对象有关 与变量名无关

      技术分享图片

变量的创建

    第一次赋值的时候创建,以后可以改变类型

      创建规则

        包含字母、数字、下划线,

        只能以字母或下划线开头,

        不能有空格,

        尽量避免Python关键字或函数名

                  简短且有描述性

        区分特殊符号,1,l,0,o

    Python变量名建议下划线分割

变量的类型

    变量无类型约束

    类型取决于关联变量

变量的使用

    用type(name)查看变量类型

    用id(name)查看放在内存哪里

       技术分享图片

垃圾回收

    Python自动释放未被引用的对象

    内部原理依据对象引用计数器统计的数值

    举例:变量a先引用20,然后再引用Jerry,那么对象20就会成为被回收的内容,垃圾回收GC会回收20  (一般情况下)变量有计数器 counter=0时可以回收

     技术分享图片

    技术分享图片

共享引用:

    简单理解就是多个变量引用一个对象

           细节:判断字面值是否相等,==

         判断内存地址是否一样,is

                Python中256以下整数,已被python缓存,目的提高效率

    例子1:共享引用一般举例——让a和b同时引用Jerry,查看内存地址id()值一样

     技术分享图片技术分享图片

    例子2:共享引用小整数20——age和score的id()值一样

     技术分享图片

    例子3:共享引用大整数3100——内存地址不一样

    技术分享图片

    解释原因

      说明一点:Python3中int是无限的只要内存能支持整数可以无限大,所以3100内存不一致不是因为整数大小有关。

        程序语言中定义数据类型都是为了便于程序,如方便我们合理利用内存。

        Python处理机制,认为我们经常会用到一些小的数字,以256为界限,256以下的值在内存中都有一份,所以上面20都是一个内存地址而3100为两个内存地址

        如果我们想查看20在内存中有多少次被引用呢,可以调用一个模块的方法,sys(system的简写) 用import sys导入该模块,下面有一个方法sys.getrefcount(20)

         技术分享图片

 

06 Python - Python变量

原文:https://www.cnblogs.com/yijiexi/p/10981647.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!