`

Python基础:Python的变量和对象

 
阅读更多

一、基本原理
Python中一切都是对象,变量中存放的是对象的引用。这是一个普遍的法则。我们举个例子来说,Python是如何来处理的。

x = 'blue'
y = 'green'
z = x

当python执行上面第一句的时候,会在heap中首先创建一个str对象,其文本内容为blue,同时还创建一个名为x的对象引用,x引用的就是这个str对象。第二句也是类似;第三条创建了一个名为z的新对象引用,并将其设置为对象引用x所指向的相同对象。如下图的变化。


所以看出在Python中赋值操作符号“=”的作用是,将对象引用和内存中的某个对象进行绑定。如果对象已经存在,就进行简单的重新绑定,以便引用“=”右边的对象;如果对象引用尚未存在,就首先创建对象,然后将对象引用和对象进行绑定。这很类似与c中的指针的概念。

Python使用“动态类型”机制,也就是说,在Python程序中,任何时候可以根据需要,某个对象引用都可以重新绑定到另一个不同的对象上(不要求是相同的类型),这和其他强化型语言如(C++,Java)不太一样,只允许重新绑定相同类型的对象上。在Python中,因为有“动态类型”机制,所以一个对象引用可以执行不同类型的对象适用的方法。当一个对象不存在任何对象引用的时候,就进入了垃圾收集的过程。

>>> a = 100
>>> a /10
10.0
>>> a[0]
Traceback (most recent call last):
  File "<pyshell#166>", line 1, in <module>
    a[0]
TypeError: 'int' object is not subscriptable
>>> a = 'hello'
>>> a[0]
'h'
>>> a /10
Traceback (most recent call last):
  File "<pyshell#169>", line 1, in <module>
    a /10
TypeError: unsupported operand type(s) for /: 'str' and 'int'
 


第一句 a = 100
Python会在heap创建一个int对象,其内容为100,同时创建a变量,其值指向heap中的int对象

第二句 a/10
Python适用“动态类型”机制,判断a指向的对象是int型,可以适用/(除法)操作。于是便进行运算产生结果。(它会在heap中在创建一个10.0的对象么?)

第三句 a[0]
Python适用“动态类型”机制,判断a指向的对象是int型,并不适用[](分片)操作。于是就进行报错。

第四句 a = 'hello'
Python会在heap创建一个str对象,其内容为hello,同时改变a变量,使得其值指向heap中的str对象。同时原来的int对象,由于不在存在对象引用,所以就进入了垃圾收集过程。


第五句 a[0]
Python适用“动态类型”机制,判断a指向的对象是str型,可以适用[](分片)操作。于是便进行运算产生结果。

第六句 a/10
Python适用“动态类型”机制,判断a指向的对象是str型,并不适用/(除法)操作。于是就进行报错。


总之 :在Python中一切都是对象,变量总是存放对象引用。当一个对象没有变量指向它的时候,它便进入了垃圾收集过程。Python的“动态类型”机制,负责检查变量的对象引用适用操作。如果该对象不适用该操作,则会直接报错。一句话”变量无类型,对象有类型

 

二、python的id(),==,is的差别

1. id():获取的是对象在内存中的地址

2. is :比对2个变量的对象引用(对象在内存中的地址,即id() 获得的值)是否相同。如果相同则返回True,否则返回False。换句话说,就是比对2个变量的对象引用是否指向同一个对象。

3. ==:比对2个变量指向的对象的内容是否相同。

  • 大小: 13.1 KB
  • 大小: 3.8 KB
  • 大小: 6.3 KB
分享到:
评论

相关推荐

    Python语言基础:变量.pptx

    以上就是Python语言中关于变量和运算符的基础知识,这些是编写Python程序的基础,能够帮助我们进行数据的存储和计算,从而实现各种复杂的功能,包括题目中提到的计算圆形的参数。在处理圆形参数时,我们需要了解圆的...

    Python程序设计:Python常量和变量.pptx

    在Python程序设计中,了解和掌握常量与变量的概念至关重要,因为它们构成了...总之,掌握Python的常量、变量和这些基本数据类型是编写有效Python程序的基础。随着深入学习,你将能够灵活运用这些知识解决更复杂的问题。

    《Python编程:从入门到实践》源代码文件

    1. **Python基础**:包括变量、数据类型(如整型、浮点型、字符串、列表、元组、字典和集合)、运算符(算术、比较、逻辑)、流程控制(条件语句、循环结构、异常处理)以及函数定义和调用。 2. **文件操作**:如何...

    Python程序基础:Python中的变量.pptx

    (1)Python的变量名区分英文字母大小写,如score和Score是两个不同的变量。 (2)变量名不能是Python的关键字。 &gt;&gt;&gt; import keyword #导入keyword模块 &gt;&gt;&gt; keyword.kwlist #查看所有关键字 Python本身定义的一些...

    Python语法:变量与赋值.rar

    7. 面向对象编程中的变量: 在Python的面向对象编程中,类属性和实例变量是变量的另一种形式。类属性属于类,而实例变量属于特定的对象。类变量可通过类名直接访问,而实例变量则需要通过对象实例访问。 总之,理解...

    《零基础轻松学Python:青少年趣味编程(全彩版)》案例文件.zip

    5. **第5章** - 面向对象编程:面向对象是Python的核心特性之一,这里会介绍类的定义、对象的创建,以及封装、继承和多态等概念。 6. **第6章** - 错误与调试:学习编程过程中,错误处理是必不可少的部分。本章将教...

    Python项目:基础知识

    7. **面向对象编程**:Python支持类(class)和对象(object)的概念,可以定义属性和方法,实现封装、继承和多态。 8. **标准库**:Python有一个庞大的标准库,包含了各种功能的模块,如os、sys、math、random、...

    python 基础-类成员变量,提供python2代码示例

    Python 基础类成员变量是面向对象编程中的核心概念,它们定义了对象的状态和行为。在Python中,类是用来创建对象的蓝图,而对象则是类的实例。类成员变量可以分为实例变量和类变量。 **实例变量**是与特定对象相关...

    Python编程三剑客第3版:Python编程从入门到实践第3版快速上手第.pptx

    《Python编程三剑客第3版:Python编程从入门到实践第3版快速上手第》是一本非常全面、实用和权威的Python编程书籍,无论你是初学者还是有一定Python编程基础的开发者,都可以从中获得很多有价值的内容和经验。

    Python基础-01:注释、变量、计算、打印

    Python基础 本节课知识点: • 变量和命名 • 数字和数学计算 • 字符串 • 注释 • 打印

    Python编程:从入门到实践1

    Python编程:从入门到实践是指 Python 语言的基础知识和实践应用。本书涵盖了 Python 语言的基础知识、变量、数据类型、列表、字典、if 语句等内容,并提供了实践示例和案例。 基础知识 Python 2 和 Python 3:...

    细说Python编程:从入门到科学计算.pptx

    Python基础语法是Python编程的基础知识,包括变量、数据类型、运算符、条件语句和循环语句等。这些内容是Python编程的基础,是读者学习Python必须掌握的核心知识点。 知识点2:数据类型 Python中的数据类型包括...

    千峰Python超详细入门教程(百度云盘分享).txt

    │ 千锋Python教程:01.python概述和工具的安装.mp4 │ 千锋Python教程:02.数据存储与二进制操作1.mp4 │ 千锋Python教程:03.数据存储与二进制操作2.mp4 │ 千锋Python教程:04.第一个Python程序与注释及输入输出....

    Python教程:面向对象.pdf

    类是面向对象编程的基础,它定义了一种数据结构,包括数据(即属性或域)和操作数据的方法(函数)。在Python中,我们使用`class`关键字来创建类。例如: ```python class Person: pass ``` 上面的`Person`类是一...

    Python学习Day01

    Python基础知识学习的第一天: 一、Python简介: (1) Python的出生: (2)Python的主要应用领域: (3)Python大事件: (4)编辑语言:编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言 (5)Python...

    Python-对象和变量.docx

    在Python的学习过程中,理解和掌握对象与变量的概念至关重要,因为它们是构建程序的基础。对于软件测试工程师来说,无论是初级还是高级,理解这些基础知识都能更好地编写和调试自动化测试脚本。通过不断学习和实践,...

    Python Programming: A Concise Introduction编程题答案

    解答集中的"First_week_python"文件将涵盖这些主题的练习,包括如何声明和赋值变量,理解整型、浮点型、字符串和布尔型等基本数据类型,掌握算术、比较和逻辑运算符的用法,以及运用if语句、while循环和for循环进行...

    试题python基础试题(含答案).pdf

    Python基础试题解析 本资源摘要信息对Python基础试题进行了详细的解析,涵盖了...本资源摘要信息对Python基础试题进行了详细的解析,涵盖了Python语言的基础知识点,帮助学习者更好地理解Python语言的基础概念和应用。

    《自学Python:编程基础、科学计算及数据分析》读书笔记模板.pptx

    本资源是一本关于Python编程的读书笔记模板,共10章,涵盖了Python的编程基础、科学计算和数据分析等方面的知识点。下面是该资源的详细知识点: 章节1:初识Python * Python简介 * Python版本的选择 * Python集成...

Global site tag (gtag.js) - Google Analytics