Python内建对象体系_核心类型说明【指导】
发布时间:2025-12-31 00:00
发布者:舞姬之光
浏览次数:Python内建对象分不可变(数值、字符串、元组)和可变(列表、字典、集合)两类,不可变对象支持哈希与线程安全,可变对象支持原地修改;None为单例空值,bool是int子类;所有值均为对象,类型本身也是type的实例,Python是强动态类型语言。
Python 的内建对象体系围绕几个核心类型构建,它们是语言运行和日常编程的基石。理解这些类型的行为、边界与设计意图,比单纯记忆语法更重要。
不可变对象:数值、字符串、元组
数值(int、float、complex)、str 和 tuple 是典型的不可变类型。一旦创建,其内容无法被修改——任何“改变”操作实际返回新对象。
- 比如 s = "hello"; s += " world" 并非修改原字符串,而是创建新字符串并让 s 指向它
-
(1,
2) 中嵌套可变对象(如 ([1], 2))时,元组本身不可变,但其中列表仍可原地修改 - 不可变性带来线程安全和哈希支持——只有不可变对象才能作为字典键或集合元素
可变对象:列表、字典、集合
list、dict、set 支持就地修改,方法如 append()、update()、add() 不会新建对象,而是直接变更原对象的内部状态。
- 赋值语句(如 b = a)只是增加引用,修改 b 会影响 a ——这是浅拷贝行为的根源
- 需要独立副本时,用 a.copy()(列表/字典)、set(a)(集合),或导入 copy 模块处理嵌套结构
- 字典键必须不可变,但值可以是任意类型;集合元素也必须可哈希,因此不能包含列表或字典
None、布尔与空值语义
None 是单例对象,表示“无值”,不是 0、空字符串或 False;bool 类型只有 True 和 False 两个实例,所有对象都有真值(truthiness)判断规则。
- 空容器([]、{}、set())、零值(0、0.0)、None 默认为 False;其余为 True
- 避免用 if x == None:,应写 if x is None: ——因为 is 判断身份,更准确且符合惯例
- bool 是 int 的子类:True == 1、False == 0 成立,可用于简单计数场景
类型本质:一切都是对象,一切都有类型
Python 中没有“原始类型”,所有值都是对象,每个对象都有唯一标识(id())、类型(type())和值。类型本身也是对象,由内置类(如 int、str)实例化而来。
-
type(42) 返回
,而 type(int) 是 ——说明 int 是元类 type 的实例 - 用 isinstance(x, (int, float)) 替代多重 type(x) == ... 判断,更灵活且支持继承
- 动态类型不等于弱类型:Python 强类型,不允许隐式转换,比如 "123" + 456 会报错,必须显式转换
相关文章:
c++如何使用spdlog日志库_c++高性能异步日志框架【教程】
千库网网页访问入口 千库网高清素材官网入口
Python性能调优秘籍_剖析瓶颈与高效内存管理策略
教你用AI将一段旋律扩展成一首完整的曲子
PHP 实现电台节目单的智能时间匹配与动态展示
宙斯浏览器怎么清理缓存 解决运行卡顿与释放内存方法
Win11怎么设置ipv4地址_Windows 11固定静态IP地址配置教程【详解】
如何在 Pandas 中基于一列条件计算另一列的分组均值
PythonRESTful API项目教程_FastAPIFlask完整流程解析
百度输入法怎么去除ai模块 百度输入法纯净版安装教程
漫蛙官方登录入口_manwa2最新备用网址更新
Windows10蓝屏代码DPC_WATCHDOG_VIOLATION_Win10死机修复指南
c++ std::accumulate怎么用 c++ STL数值算法【实例】
composer怎么在Linux/Ubuntu安装_命令行配置与全局路径设置【教程】
小高和刚:100个结局太少!想做个《两百日战纪》
javascript的安全性如何保障_常见的Web攻击该如何防范?
Windows11怎样设置系统闹钟_Windows11系统闹钟设置步骤【教程】
如何修复伪元素 :before 导致按钮失去圆角的问题
Python文件操作最佳实践_稳定性说明【指导】
c++如何实现简单的DNS域名解析_c++ getaddrinfo函数与IP地址转换【方法】
短链接怎么加密后还原php_双向加密解密流程汇总【汇总】
如何使用 Go 正则表达式提取括号内首个纯字母标识符(排除嵌套与后续重复)
html5canvas怎么画渐变背景_createLinearGradient用法详解【汇总】
如何在Golang中优化模块结构_减少依赖和模块复杂度
REDMI多款机型迎来HyperOS 3系统推送 含K60系列
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
如何在Golang中捕获结构体方法错误_统一返回error类型
Mac如何备份到iCloud_Mac桌面与文稿文件夹云同步【设置】
内存价格坐上火箭!DDR4一年暴涨1800%:2026年还要涨
如何在 Trinket 环境中正确实现海龟点击变色功能
相关栏目:
【
行业资讯17850 】
【
软件资源51899 】
【
网站技术89748 】
【
百度推广44206 】
【
网络营销84187 】
【
运营推广93002 】
【
AI优化91086 】
【
网络优化117696 】
【
网址导航107142 】





2) 中嵌套可变对象(如 ([1], 2))时,元组本身不可变,但其中列表仍可原地修改
