Python对象模型详解:身份、类型与值

0 下载量 140 浏览量 更新于2024-08-28 收藏 343KB PDF 举报
"Python入门篇介绍了Python对象模型的基础知识,包括对象的身份、类型和值这三个基本特性,并列举了Python中的标准数据类型,如数字、字符串、列表、元组、字典,以及特殊类型如None。此外,还提到了布尔值在Python中的应用以及对象的比较运算符。" 在Python编程语言中,一切皆为对象。这意味着无论是数字、字符串、列表,还是自定义的类实例,它们都基于Python的对象模型。对象模型是Python数据结构的核心,它规定了如何存储和操作数据。 **身份(Identity)** 每个Python对象都有一个独一无二的身份,这是通过`id()`函数获取的,它返回对象在内存中的地址,可以用来区分不同的对象。即使两个对象的值相同,如果它们是不同的对象,其身份也会不同。例如,创建两个整数24的实例,虽然它们的值相同,但身份是独立的: ```python >>> id(24) # 第一个24对象的身份 123456 >>> id(24) # 再次调用,同一个值但新创建的对象,身份不同 789101 ``` **类型(Type)** 对象的类型决定了它的行为和可以执行的操作。可以使用内置的`type()`函数来检查对象的类型。Python有多种内置类型,如整型(int)、浮点型(float)、字符串(str)、列表(list)、元组(tuple)、字典(dict)等。例如: ```python >>> type(24) # 整型 <type 'int'> >>> type('Hello') # 字符串 <type 'str'> >>> type([1, 2, 3]) # 列表 <type 'list'> ``` **值(Value)** 值是对象所代表的数据,它可以是数字、文本、列表中的元素等。一旦对象被创建,其值通常是不可变的,但对于某些类型(如列表、字典)来说,可以通过方法改变其内部状态。 **标准数据类型** - **数字**:包括整型(int)、布尔型(bool)、长整型(long,在Python 3中已与int合并)、浮点型(float)和复数型(complex)。 - **字符串**(str):不可变的字符序列,可以进行索引、切片和字符串操作。 - **列表**(list):可变的有序元素集合,支持索引、切片、添加、删除等操作。 - **元组**(tuple):不可变的有序元素集合,常用于表示不可变数据集合。 - **字典**(dict):键值对的无序集合,通过键进行访问,支持增删改查操作。 **其他内建类型** - **NoneType**:只有一个值None的特殊类型,通常用于表示缺失或未定义。 - **布尔值**(bool):True和False,可以用作逻辑运算的基础。 - **文件**、**集合**(set)和**固定集合**(frozenset)提供了对数据的特殊处理方式。 - **函数**(function)和**方法**(method):表示可调用的代码单元。 - **模块**(module):组织代码的单位,可以导入和使用。 - **类**(class):用于面向对象编程,定义自定义对象的蓝图。 **布尔值** 在Python中,所有非零值被视为True,零值和None被视为False。这适用于布尔测试,例如在条件语句中。以下值的布尔值为False: - `None` - `False` - 所有值为0的数字:0(整型),0.0(浮点型),0L(长整型) - 0.0+0.0j(复数) - 空字符串:`""` - 空列表:`[]` - 空元组:`()` - 空字典:`{}` **比较运算符** Python中的比较运算符包括等于(==)、不等于(!=)、小于(<)、大于(>)、小于等于(<=)、大于等于(>=)。这些运算符用于比较两个对象,返回结果是布尔值True或False。例如: ```python >>> 2 == 2 True >>> 2.34 <= 3.44 True >>> 'abc' == 'xyz' False ``` 了解这些基础知识对于Python初学者至关重要,它们构成了编写有效Python代码的基础。掌握对象的身份、类型和值的概念,以及如何利用它们来操作和比较数据,将使你更好地理解和运用Python语言。