python基础

2.2 Python对象和引用

数据表示为对象

对象本质上是一个内存块,拥有特定的值,支持特定类型的运算操作

Python 3中,一切皆为对象

每个对象由标识(identity)、类型(type)和值(value)标识

Python中的对象

(1)标识(identity)用于唯一标识一个对象,通常对应于对象在计算机内存中的位置。使用内置函数id(obj1)可返回对象obj1的标识

通过内置的id()函数,可以获取一个对象唯一的id标识(CPython的实现为内存存放位置)

(2)类型(type)用于表示对象所属的数据类型(类),数据类型(类)用于限定对象的取值范围,以及允许执行的处理操作。使用内置函数type(obj1)可以返回对象obj1所属的数据类型

通过内置的type()函数,可以判断一个对象的类型

(3)值(value)用于表示对象的数据类型的值。使用内置函数print(obj1)可返回对象obj1的值

变量、赋值语句和对象的引用(1)

Python对象是位于计算机内存中的一个内存数据块

为了引用对象,必须通过赋值语句,把对象赋值给变量(也称之为把对象绑定到变量)

指向对象的引用即变量

Python还支持以下赋值语句

(1)链式赋值(chained assignment)

(2)复合赋值语句

(3)系列解包赋值

常量

Python语言不支持常量,即没有语法规则限制改变一个常量的值

Python语言使用约定,声明在程序运行过程中不会改变的变量为常量,通常使用全大写字母(可以使用下划线增加可阅读性)表示常量名

【例2.6】常量示例

对象内存示意图(1)

Python程序运行时,在内存中会创建各种对象(位于堆内存中),通过赋值语句,将对象绑定到变量(位于栈内存中),通过变量引用对象,进行各种操作

多个变量可以引用同一个对象

如果一个对象不再被任何有效作用域中的变量引用,则会通过自动垃圾回收机制,回收该对象占用的内存

不可变对象(immutable)

不可变对象一旦创建,其值就不能被修改,例如:int、str、complex等

【例2.9】不可变对象示例

可变对象(mutable)

可变对象的值可以被修改

Python对象的可变性取决于其数据类型的设计,即是否允许改变其值

【例2.10】可变对象示例

2.3 标识符及其命名规则

标识符是变量、函数、类、模块和其他对象的名称

标识符的第一个字符必须是字母、下划线(“_”),其后的字符可以是字母、下划线或数字

一些特殊的名称,如if、for等保留关键字,不能作为标识符

例如,a_int、a_float、str1、_strname、func1为正确的变量名;而99var、It'sOK、for(关键字)为错误的变量名

标识符注意事项

(1)Python标识符区分大小写。例如,ABC和abc视为不同的名称

(2)以双下划线开始和结束的名称通常具有特殊的含义。例如,__init__为类的构造函数,一般应避免使用

(3)避免使用Python预定义标识符名作为自定义标识符名。例如:NotImplemented、Ellipsis、int、float、list、str、tuple等

保留关键字

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值