尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

zsj_蓝桥杯系列python_类与内置类型

zsj_蓝桥杯系列python_类与内置类型
📅 发布时间:2026/6/20 14:52:00
zsj_蓝桥杯系列python_类与内置类型

一、基础认知:什么是类与内置类型?
1.类(Class):自定义数据类型的 “模板”
定义:类是封装属性(数据)和方法(操作逻辑)的集合,用于创建特定类型的对象(实例)

核心作用:解决代码复用、逻辑封装问题,让程序更具模块化和扩展性

核心特殊方法:init(初始化方法)init 是类中最基础的 “初始化方法”,它在对象被创建后、返回给用户前会被自动调用,核心作用是给新实例设置初始的 “实例属性”:
第一个参数 self:代表正在初始化的实例对象本身(调用时无需手动传参,Python 会自动传入);
任务:为实例绑定属性,定义对象的初始状态
简单示例:

class Person:# 属性(类属性/实例属性)species = "人类"  # 类属性(所有实例共享)# 构造方法:初始化实例属性def __init__(self, name, age):self.name = name  # 实例属性(每个实例独立)self.age = age# 方法(实例方法)def say_hello(self):print(f"你好,我是{self.name},今年{self.age}岁")

2. 内置类型:Python 预定义的 “现成类”
定义:Python 自带的无需手动定义、可直接使用的数据类型,本质是 Python 解释器预实现的类。

常见内置类型分类:

基本类型:int(整数)、float(浮点数)、str(字符串)、bool(布尔值)、NoneType(空值);

容器类型:list(列表)、tuple(元组)、dict(字典)、set(集合)、frozenset(不可变集合);

其他常用:range(范围)、bytes(字节串)、bytearray(可变字节串)等

关键特性:每个内置类型都有专属的属性和方法(如 list.append()、str.split()),与自定义类的 “属性 + 方法” 结构完全一致。

二.内置类型的核心用法

1. 基本类型:不可变类型的特性与操作

核心特点:创建后无法修改内部值(修改会生成新对象);

常用操作:

# int/float:数值运算
a = 10
print(a + 5)  # 15,支持 +-*/% 等
print(a.bit_length())  # 4(二进制位数)# str:字符串处理
s = "python"
print(s.upper())  # PYTHON(大小写转换)
print(s[0:3])  # pyt(切片)
print(s.join(["I", "love"]))  # Ipythonlove(拼接)

2. 容器类型:可变 / 不可变的选择

(1)不可变容器:tuple(元组)、frozenset(不可变集合)
适用场景:存储不希望被修改的数据(如配置项、坐标);
示例:

t = (1, 2, "a")
print(t[1])  # 2(支持索引)
# t[0] = 3  # 报错:TypeError(不可修改)fs = frozenset({1, 2, 3})
# fs.add(4)  # 报错:没有 add 方法(不可变)

(2)可变容器:list(列表)、dict(字典)、set(集合)
核心特点:可动态添加、删除、修改元素(修改不生成新对象);

常用操作:

# list:有序可变,支持重复元素
lst = [1, 2, 3]
lst.append(4)  # 添加元素 → [1,2,3,4]
lst.pop(0)     # 删除第一个元素 → [2,3,4]
lst.sort()     # 排序(原地修改)# dict:无序键值对,键唯一且不可变
d = {"name": "李四", "age": 25}
d["gender"] = "男"  # 添加键值对
print(d.get("name"))  # 李四(安全获取值)
print(d.items())  # dict_items([('name', '李四'), ('age', 25), ('gender', '男')])# set:无序去重,支持集合运算
s = {1, 2, 2, 3}
print(s)  # {1,2,3}(自动去重)
s.add(4)  # 添加元素
print(s & {2, 3, 5})  # {2,3}(交集运算)

三.避坑指南:类与内置类型的常见误区

1. 混淆 “不可变类型” 的修改逻辑

错误认知:s = "abc"; s[0] = "A" 能修改字符串;
正确逻辑:不可变类型(str、tuple、int)的 “修改” 本质是创建新对象,如 s = s.replace("a", "A")(生成新字符串赋值给 s)

2. 继承内置类型时忽略 super() 调用

错误示例:重写 init 时未调用父类方法,导致内置功能失效:

class BadList(list):def __init__(self):self.count = 0  # 未调用 super().__init__()
bl = BadList()
bl.append(1)  # 正常?看似可用,但复杂场景会报错(如继承 dict 时)

正确做法:始终在自定义 init 中调用 super().init(),确保父类初始化完成

四.总结:类与内置类型的核心逻辑

1.本质统一:内置类型是 Python 预定义的类,自定义类是开发者扩展的类,两者遵循相同的面向对象规则;
2.用法互补:内置类型满足通用需求(优先使用,性能更高),自定义类满足个性化需求(封装业务逻辑);
3.进阶技巧:继承内置类型可快速扩展功能,实现特殊方法可让自定义类更 “易用”(贴近内置类型体验)。
掌握以上知识点,既能灵活运用内置类型提高开发效率,也能通过自定义类构建模块化、可扩展的 Python 程序。

相关新闻

  • 39、安全编程与漏洞利用技术解析
  • git 下载 Qwen3-32B模型时遇到的问题及解决方案
  • 2110. Number of Smooth Descent Periods of a Stock 股票的平滑下降时间段数量

最新新闻

  • MinecraftForge模组开发入门指南:从零开始创建你的第一个游戏模组
  • 杭州买猫狗怎样选?整理4家口碑不错的宠物店 - 园友3800037
  • 2026年国内防抛网厂家 解决品质参差痛点 靠谱选型推荐 - 资讯速览
  • 化妆品品牌全案包装设计服务商|VI + 包装 + 落地一站式全案定制 - 宏洛图品牌设计
  • 汕头本地人私藏牛肉火锅品牌排行 实地探访口碑解析 - 起跑123
  • 2026年上海名饰回收价格表|真实交易案例+防坑攻略 - 奢侈品交易观察员

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号