零基础学python-6.1 变量、对象与引用

如果你曾经学习过c,java等静态语言,变量、对象等都需要定义类型,否则报错

在python里面,类型,是在运行中动态设定的

之前我们已经多次提到变量,我们在这里再次说一下:

我们以a=3为例子说明

1.变量的创建

先有了3这个整形对象,然后将3这个对象赋值给a这个变量,a这个变量只有初始化之后才能够使用

2.变量的类型

变量不会有与之关联的类型的信息或者约束,类型是存在与对象当中,例如上面的a=3,a是没有类型的,a的类型存在与3这个对象,如果是a=‘a‘,a的类型是字符串,说白了,a的类型取决于初始化的对象的类型

3.变量的使用

变量出现在表达式中,他马上就会被当前引用的对象所替代,无论这个对象什么类型

所有的变量只有被初始化之后才能使用,否则报错

综上所述:a=3的过程是

创建一个对象值为3,然后创建一个变量a,最后把a与3相连。事实上,a只是引用3这个对象的内存地址

a=1
a=1.1
a=2''

我们在举一个例子,就是上面的代码,a是变量,a没有类型,a=1是系统创建一个对象,值为1,然后将1这个内存块的地址赋值给a,或者说a引用了1这个对象的内存地址

第二行如是,只不过a现在引用1.1这个浮点数对象的内存地址,第三行,a引用2这个字符串对象所在的内存地址,a从来没有固定的类型,类型都是存在与对象当中,a随着对象的改变而改变类型

现在就有一个问题,当a变成1.1时,那个整数类型对象1怎样呢?下面我们引入对象的垃圾收集

一个对象除了值之外,他还有两个头信息,一个是类型标志符,一个是引用计数器。

当一个对象不再被引用,引用计数器的计数为0,这个时候后台将收集这些对象,然后回收销毁,释放内存空间

就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-07 12:26:30

零基础学python-6.1 变量、对象与引用的相关文章

[零基础学python]玩转字符串(1)

如果对自然语言分类,有很多中分法,比如英语.法语.汉语等,这种分法是最常见的.在语言学里面,也有对语言的分类方法,比如什么什么语系之类的.我这里提出一种分法,这种分法尚未得到广大人民群众和研究者的广泛认同,但是,我相信那句"真理是掌握在少数人的手里",至少在这里可以用来给自己壮壮胆. 我的分法:一种是语言中的两个元素(比如两个字)和在一起,出来一个新的元素(比如新的字):另外一种是两个元素和在一起,知识两个元素并列.比如"好"和"人",两个元素和

[零基础学python]初识永远强大的函数

函数,对于人类来讲,能够发展到这个数学思维层次,是一个飞跃.可以说,它的提出,直接加快了现代科技和社会的发展,不论是现代的任何科技门类,乃至于经济学.政治学.社会学等,都已经普遍使用函数. 下面一段来自维基百科(在本教程中,大量的定义来自维基百科,因为它真的很百科):函数词条 [函数这个数学名词是莱布尼兹在1694年开始使用的,以描述曲线的一个相关量,如曲线的斜率或者曲线上的某一点.莱布尼兹所指的函数现在被称作可导函数,数学家之外的普通人一般接触到的函数即属此类.对于可导函数可以讨论它的极限和导

零基础学Python应该学习哪些入门知识及学习步骤安排

众所周知,Python以优雅.简洁著称,入行门槛低,可以从事Linux运维.Python Web网站工程师.Python自动化测试.数据分析.人工智能等职位,薪资待遇呈上涨趋势.很多人都想学习Python,那么零基础学Python应该学习哪些入门知识呢? Python入门知识一:解释器. Python是一种面向对象的解释型计算机程序设计语言,因此想要学好Python你必须要了解解释器.由于Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行

[零基础学python]玩转字符串(2)

上一章中已经讲到连接两个字符串的一种方法.复习一下: >>> a= 'py' >>> b= 'thon' >>> a+b 'python' 既然这是一种方法,言外之意,还有另外一种方法. 连接字符串的方法2 在说方法2之前,先说明一下什么是占位符,此前在讲解变量(参数)的时候,提到了占位符,这里对占位符做一个比较严格的定义: 来自百度百科的定义: 顾名思义,占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 根据这个定义,在python里面

[零基础学python]一些关于Python的事情

如同学习任何一种自然语言比如英语.或者其它编程语言比如汇编(这个我喜欢,可惜多年之后,已经好久没有用过了)一样,总要说一说有关这种语言的事情,有的可能就是八卦,越八卦的越容易传播.当然,以下的所有说法中,难免充满了自恋,因为你看不到说Python的坏话.这也好理解,如果要挑缺点是比较容易的事情,但是找优点,不管是对人还是对其它事务,都是困难的.这也许是人的劣根之所在吧,喜欢挑别人的刺儿,从而彰显自己在那方面高于对方.特别是在我们这个麻将文化充斥的神奇地方,更多了. 废话少说点(已经不少了),进入

[零基础学python]为什么要开设本栏目

这个栏目的名称叫做"零基础学Python". 现在网上已经有不少学习python的课程,其中也不乏精品.按理说,不缺少我这个基础类型的课程了.但是,我注意到一个问题,不管是课程还是出版的书,大多数是面向已经有一定编程经验的人写的或者讲的,也就是对这些朋友来讲,python已经不是他们的第一门高级编程语言.据我所知,目前国内很多大学都是将C之类的做为学生的第一门语言. 然而,在我看来,python是非常适合做为学习高级语言编程的第一门语言的.有一本书,名字叫<与孩子一起学编程>

[零基础学python]啰嗦的除法

除法啰嗦的,不仅是python. 整数除以整数 看官请在启动idle之后,练习下面的运算: >>> 2/5 0 >>> 2.0/5 0.4 >>> 2/5.0 0.4 >>> 2.0/5.0 0.4 看到没有?麻烦出来了,如果从小学数学知识除法,以上四个运算结果都应该是0.4.但我们看到的后三个符合,第一个居然结果是0.why? 因为,在python里面有一个规定,像2/5中的除法这样,是要取整.2除以5,商是0(整数),余数是5(整

[零基础学python]集成开发环境(IDE)

当安装好python之后,其实就已经可以进行开发了.下面我们开始写第一行python代码. 值得纪念的时刻:Hello world 如果是用windows,请打开CMD,并执行python. 如果是UNIX类的,就运行shell,并执行python. 都会出现如下内容: Python 2.7.6 (default, Nov 13 2013, 19:24:16) [GCC 4.6.3] on linux2 Type "help", "copyright", "

[零基础学python]python中的四则运算

一提到计算机,当然现在更多人把她叫做电脑,这两个词都是指computer.不管什么,只要提到她,普遍都会想到她能够比较快地做加减乘除,甚至乘方开方等.乃至于,有的人在口语中区分不开计算机和计算器. 那么,做为零基础学习这,也就从计算小学数学题目开始吧.因为从这里开始,数学的基础知识列为肯定过关了. 复习 还是先来重温一下伟大时刻,打印hello world. 打开电脑,让python idle运行起来,然后输入: >>> print 'Hello, World' Hello, World

[零基础学python]开始真正编程

通过对四则运算的学习,已经初步接触了Python中内容,如果看官是零基础的学习者,可能有点迷惑了.难道在IDE里面敲几个命令,然后看到结果,就算编程了?这也不是那些能够自动运行的程序呀? 的确.到目前位置,还不能算编程,只能算会用一些指令(或者叫做命令)来做点简单的工作.并且看官所在的那个IDE界面,也是输入指令用的. 列位稍安勿躁,下面我们就学习如何编写一个真正的程序.工具还是那个IDLE,但是,请大家谨记,对于一个真正的程序来讲,用什么工具是无所谓的,只要能够把指令写进去,比如用记事本也可以