python中的变量与对象

一. 什么是变量

变量就是以前学习的数学中常见的等式x = 3(x是变量,3是变量值),在编程中,变量不仅可以是数学,还可以是任意数据类型

二. 变量的命名规则

变量名必须是英文大小写、数字和_的组合,不能以数字开头,不能是关键字

a            ?

_name        ?

Atest1       ?

1a           ?

那么,如何查看python中的关键字呢?

#导入模块
import keyword

#打印关键字列表
print(keyword.kwlist)

结果:
[‘False‘, ‘None‘, ‘True‘, ‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘nonlocal‘, ‘not‘, ‘or‘, ‘pass‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]

三. 变量、对象和引用

在python中,一切都是对象,一切都是对象的引用

举个最简单的例子:

a = 3

如图所示,python将执行三个步骤来完成a = 3的赋值操作:

1. 创建也变量a

2. 创建一个对象(分配一块内存),来存储值3

3. 将变量与对象,通过指针连接起来,从变量到对象的连接称之为引用(变量引用对象)

四. 类型属于对象,而非变量

在python中,我们无需事先声明变量的类型,变量类型是在运行过程中根据对象的类型自动决定的。

为了理解对象类型是如何使用的,请看我们对一个变量多次赋值后的结果:

a = 3                      #整型
a = ‘spam‘                 #字符串
a =  1.2.3                 #浮点型

在上面的例子中,a开始是一个整数,然后变成一个字符串,最后变成一个浮点数。看起来,a的类型发生了三次改变。

事实上,在python中,变量没有类型,类型是属于对象的。就像前面所说,a = 3,是变量a引用了对象3,而以上三条语句,实际上是变量a引用了不同类型的对象。

那么,对象的结构又是什么样的?

如下图所示,每个对象都包含了两个头部信息,一个是类型标志符,另一个是引用计数器。类型标志符标记了这个对象的类型,例如整数对象3,包含了值3和一个类型标志符(严格意义上,它是一个指向int的对象的指针),这就告诉python,这是一个整数对象。而‘spam‘字符串对象的标志符指向了一个字符串类型。由于对象记录了它们的类型,变量的类型就没有必要了。

五. 对象的垃圾回收

当变量a重新赋值时,它的前一个引用会发生什么变化呢?

a = 3
a = ‘spam‘

答案是,当变量a重新赋值给字符串‘spam‘时,它的上一个引用对象3马上被回收了,对象的空间自动放入自由内存空间池,等待后来的对象使用。

在python内部是这样实现这一功能的:它在每个对象内部分配了一个计数器,计数器记录了当前指向该对象的引用的数目,一旦这个计算器被设置为0(即这个对象没有被任何变量引用),该对象的内存空间就会自动回收。这种自动回收对象空间的机制就叫垃圾收集,它的最大好处是,可以再脚本中任意使用对象而不需要考虑释放内存空间,在程序运行时,python将会清理那些不再使用的空间。

原文地址:https://www.cnblogs.com/cnhkzyy/p/9063224.html

时间: 2024-11-07 21:45:31

python中的变量与对象的相关文章

Python中的变量引用对象需注意的几点

Python中的变量引用对象需注意的几点 分类:Python (55)  (0) 普通引用: Python中,变量的作用仅仅是一个标识,只有赋值后才被创建,它可以引用任何类型的对象,而且在引用之前必须赋值.赋值后的变量指向响应的对象,拥有该对象的空间.类型属于对象,但是不是变量. [python] view plain copy a = 3 a = "science" 上述代码说明数值3和字符串"science"分别是两种对象,初始变量a赋值对象3被创建,变量a指向

浅析python中的类变量和对象变量

刚学python,学到了有关于类和对象的地方.对一个概念有点模糊,后来通过实践编码找到一定规律 在python中 class test(object): id=2 name='tt' list=['tt','dd'] def change(self,newA,new_id): self.id=new_id self.age=newA return self.age t1 = test() t1.change(21, 3) print t1.id #3 t2 = test() t2.age = 2

python中的变量和数据类型

一.变量定义:变量是计算机内存中的一块区域,存储规定范围内的值,值 可以改变,通俗的说变量就是给数据起个名字. 二.变量命名规则: 1. 变量名由字母.数字.下划线组成 2. 数字不能开头 3. 不可以使用关键字, 举例:a,a1,a_1 三.变量的赋值: 1. Python中的变量不需要声明,变量的赋值就是变量声明和 定义的过程: 2. 每个变量在使用前都必须赋值,变量赋值以后该变量才会 被创建: 3. 等号(=)用来给变量赋值,等号(=)运算符左边是一个 变量名,等号(=)运算符右边是存储在

python中的变量引用小结

python的变量都可以看成是内存中某个对象的引用.(变量指向该内存地址存储的值) 1.python中的可更改对象和不可更改对象 python中的对象可以分为可更改(mutable)对象与不可更改(immutable)对象 strings, tuples, 和numbers是不可更改的对象 list,dict等则是可以修改的对象. 如果某个变量指向不可更改的对象,则重新赋值时.原对象被抛弃,变量会指向一个新对象. 若指向的是可更改的对象,则重新赋值时,会也会重新赋值内存中对象的值. 如图:nfo

Python中的变量及数字类型

一.Python中的变量与注释 1.变量 1.1 创建变量 在Python中使用"="来进行变量的创建,不需要声明变量的数据类型. message = "Hello World!" print(message) 这里的变量都存储了一个值—与变量相关联的信息. 例: x = 4 x = 5 在解释器中在定义变量时会在内存中创建两个对象一个为4,另一个为5.这里的x好比一个标签,当x = 4时其贴在4上,通过x即可调用4这个对象,而当x = 5时x又贴在5上,通过x调用

Python中常见的文件对象内建函数

文件对象内建方法列表 文件对象的方法 操作 file.close() 关闭文件 file.fileno() 返回文件的描述符(file descriptor,FD,整数值) file.flush() 刷新文件的内部缓冲区 file.isatty() 判断file是否是一个类设tty备 file.next() 返回文件的下一行,或在没有其它行时引发StopIteration异常 file.read(size=-1) 从文件读取size个字节,当未给定size或给定负值时读取剩余的所有字节,然后作为

Python中的变量

1.在Python程序中,变量是用一个变量名表示,变量名必须是大小写英文.数字和下划线(_)的组合, 且不能用数字开头,比如:a = 1(变量a是一个整数).t_007 = 'T007'(变量t_007是一个字符串). 2.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且 可以是不同类型的变量,例如: a = 123              # a是整数 print a a = 'imooc'       # 变为了字符串 print a 3.Py

python 中的变量

1 变量的定义 变量即variable Python 中的变量赋值不需要类型声明. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 等号(=)用来给变量赋值. 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值.例如: 注意:变量名必须是字母,数字或下划线组成,但是不能以数字开头. 2 变量名的约束 使用一个变量前一定要先定义! 注意:y直接回车,就是一种使用,即打印y的值. 3标准数据类型 在内存中

python中多重继承与获取对象

1.python中多重继承 除了从一个父类继承外,Python允许从多个父类继承,称为多重继承. 多重继承的继承链就不是一棵树了,它像这样: class A(object): def __init__(self, a): print 'init A...' self.a = a class B(A): def __init__(self, a): super(B, self).__init__(a) print 'init B...' class C(A): def __init__(self,