当前位置: 首页 > news >正文

python学习(fifth)

前言:

今天睡过头了,7点多醒了一回,就想着再睡一会,9点会有闹钟叫我的,结果9:29才醒来,手机自动关机了,ε=(´ο`*)))唉,这都是小事,我总觉得我干什么都没精神,干什么都好累,md,食欲倒是挺好,是不是总抽烟的事啊,那每天少抽一点吧,饮食的话,我也没什么好办法,吃的也就那样,一点蔬菜都没有,最近倒是越来越馋了。ε=(´ο`*)))唉,情绪也比较悲观,外面天气死热,就没有一个正面buff吗,算了,不说了,去学习吧。

一、项目交接

1-虚拟环境

虚拟环境 让每一个项目都有独立的依赖环境,避免不同项目之间的依赖冲突

创建虚拟环境:

python -m venv venv

激活虚拟环境:

venv/Scripts/activate

退出虚拟环境:

deactivate

二、函数进阶

2-闭包

外层函数执行完毕后,局部变量本该销毁,但闭包会保留变量,供内层函数后续调用。

优点:保存函数状态、减少全局变量、简化代码结构

缺点:外层变量会常驻内存,内存占用比普通函数高

3-lambda 匿名函数

给我的感觉就是方便


配合 sorted() 排序自定义规则
lst = [("张三",18),("李四",16)]
res = sorted(lst, key=lambda x: x[1])


临时简单逻辑,不用单独定义命名函数

限制:只能一行表达式,复杂逻辑必须用def定义普通函数。

4-高阶函数

接收函数作为参数,或者返回一个函数的函数,就是高阶函数。

能增强函数功能,就是复杂

map:遍历,别的不干。

filter:过滤,只保留函数返回True的元素。

reduce:依次把前一次结果和下一个元素传入函数运算,累计计算。

5-装饰器基础

无语法糖时:

def deco(func): # 内层包装函数 def wrapper(*args, **kwargs): # 前置功能 print("函数开始执行") res = func(*args, **kwargs) # 执行原函数 # 后置功能 print("函数执行结束") return res return wrapper # 手动赋值 def test(): print("原函数逻辑") test = deco(test) test()

有语法糖时:

def deco(func): def wrapper(*args, **kwargs): print("前置") r = func(*args, **kwargs) print("后置") return r return wrapper @deco def test(a,b): return a+b

常用:
日志记录、运行耗时统计、权限校验、异常捕获、接口缓存。

三、面向对象

1-类和对象

类:模板、图纸,定义一类事物共同属性和行为
对象 / 实例:根据模板创建出的具体个体
Python 万物皆对象:数字、字符串、字典、列表全都是某个类的实例

2-继承和多态

子类可以直接复用父类的属性与方法,减少重复代码
语法:class 子类(父类)

super():

调用父类被重写的方法,常用在子类构造函数:

class Cat(Animal): def __init__(self, name): super().__init__() # 执行父类__init__ self.name = name

多态:
同一个方法,不同子类实现不同逻辑,调用时自动匹配对应子类实现。
核心:关注父类抽象,不关注具体子类类型

3-封装和属性

封装:
将属性、方法打包进类内部
隐藏私有数据,不允许外部随意修改,仅开放指定访问入口
私有属性:
Python 约定:以__双下划线开头的属性,视为私有,外部无法直接访问

class Person: def __init__(self, age): self.__age = age # 私有属性

@property 装饰器(属性伪装)
把方法伪装成属性,用.直接调用,不用加括号;常用于私有属性的读取、修改、删除。

class Person: def __init__(self, age): self.__age = age # 读 @property def age(self): return self.__age # 修改 @age.setter def age(self, val): if 0 < val < 150: # 增加数据校验 self.__age = val else: print("年龄不合法") p = Person(18) print(p.age) # 像访问属性一样取值 p.age = 20 # 赋值修改

4. 类方法 和 静态方法

类中一共 3 种方法,区别由第一个参数区分:

① 实例方法(最常用)
  • 第一个参数:self
  • 只能由实例对象调用,操作实例属性
② 类方法 @classmethod
  • 装饰器:@classmethod
  • 第一个参数:cls(代表当前类本身)
  • 可以用类名。方法 ()/ 对象。方法 () 调用
  • 只能操作类属性,不能直接使用实例属性
class Tool: count = 0 @classmethod def show_count(cls): print(cls.count)
③ 静态方法 @staticmethod
  • 装饰器:@staticmethod
  • 无默认必须参数,就是普通函数放在类里
  • 类、对象都可以调用,和类 / 实例本身几乎无绑定
  • 适合写和类弱相关的工具工具函数
class MathUtil: @staticmethod def add(a,b): return a+b
三者选用总结
  1. 要操作实例变量 → 实例方法
  2. 只操作类变量 → 类方法
  3. 和类、实例都无关,单纯工具函数 → 静态方法
http://www.jsqmd.com/news/1217221/

相关文章:

  • 从零构建C++游戏框架:ECS架构、多线程渲染与性能优化实战
  • OpenAI自定义指令升级至5000字:打造持久化AI工作流指南
  • 现代系统登录模块设计与安全实践指南
  • Linux内核C语言编码规范详解与实践指南
  • c语言初学 | 数据类型、ASCII、转义字符、字符串
  • 基于YOLOv8的个人防具检测系统开发与实践
  • ROS工作空间与功能包创建指南:从入门到实践
  • 模型生产化落地:从Notebook到高可用ML服务的工程实践
  • Django认证系统实战:从基础到高级安全配置
  • AM62L EMIF控制器DFS与DFI时序寄存器配置实战指南
  • 缺失值处理不是填空题:从业务信号解码到工业级填充实战
  • Python if语句完全指南:从基础到进阶
  • Gson在Java中的JSON序列化与反序列化实践指南
  • FastAPI可观测性实战:用Prometheus+Grafana构建监控看板
  • 2026年7月最新亨得利官方服务项目及价格查询|网点地址与24小时客服热线权威信息公告 - 亨得利官方
  • Windows平台7款高效下载工具评测与优化指南
  • Nova Lake统一支持AVX-512:SIMD并行计算的技术突破与应用指南
  • 帕累托分布 密度函数
  • 2026年上海水磨石厂家优先考察的四个硬指标
  • 算术平均数的本质、陷阱与工程化应用指南
  • 多维聚合后数据操作:结构化、语义化与可追溯化实践
  • 在VMware上安装Ubuntu Desktop 26.04
  • C++小白记:string类用法
  • 土壤属性制图
  • Android项目迁移中的编码与资源问题排查指南
  • 开放式耳机哪款口碑好?2026年公认口碑好的开放式耳机推荐
  • 西安积家回收价格查询和靠谱回收平台实测排行(2026年7月最新) - 收的高名表回收平台
  • Python循环与函数定义的核心差异与应用技巧
  • HarmonyOS ArkUI Progress 进度条:5 种类型与动画演示
  • SonarQube自定义规则开发实战指南