会员
周边
新闻
博问
闪存
赞助商
YouClaw
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
wangya216
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
4
5
6
7
8
9
10
下一页
2025年11月7日
Python四大容器核心操作速查表(全面版·v1.7 - 2025年11月7日修订)
摘要: Python四大容器核心操作速查表(全面版·v1.7 - 2025年11月7日修订) 📌 使用说明 时间复杂度:O(1)=常数级(快),O(n)=线性级(随数据量增长),O(k)=取决于传入可迭代对象长度 🔴 不可变容器 (元组)的增删改操作均为"间接实现",直接操作会报错 🔵 可变容器 (列
阅读全文
posted @ 2025-11-07 08:41 wangya216
阅读(83)
评论(0)
推荐(0)
2025年11月6日
`__new__`是实例方法?还是类方法?或是静态方法?
摘要: __new__本质上是解释器硬编码的“类专属静态方法”。核心原因就一个:它是Python“对象创建协议”的核心,规则由解释器直接定义,不需要装饰器来“声明身份”。 我们可以用“排除法+本质拆解”把它说透: 第一步:先排除“它不是什么” 不是普通实例方法: 实例方法的第一个参数是self(代表已创建的
阅读全文
posted @ 2025-11-06 09:47 wangya216
阅读(41)
评论(0)
推荐(0)
2025年11月5日
函数的描述符特性与绑定方法的生成机制
摘要: 函数的描述符特性与绑定方法的生成机制 一、为什么把两件事放在同一篇讲 在 Python 中,「函数」(function)本身是一种非数据描述符(non-data descriptor)。 解释器把函数放进类属性槽里时,正是靠描述符协议把它**魔术般地」变成「绑定方法」(bound method)。
阅读全文
posted @ 2025-11-05 18:43 wangya216
阅读(37)
评论(0)
推荐(0)
人狗大战Ⅳ
摘要: 核心玩法设计 团队组建: 玩家A和玩家B各自从「6个人类角色」中选2个,从「4种狗角色」中选1个,组成3人团队 每个角色有独特属性(生命值、攻击力、防御力、技能) 回合制对战: 玩家轮流操作(玩家A→玩家B→玩家A...) 每次操作可选择:「攻击敌方成员」「治疗己方成员」「使用技能」(部分角色有专属
阅读全文
posted @ 2025-11-05 17:54 wangya216
阅读(42)
评论(0)
推荐(0)
`__call__`使代码更Pythonic吗?
摘要: __call__使代码更Pythonic吗? 要回答这个问题,需先明确“Pythonic”的核心内涵:代码符合Python的设计哲学(如“简洁明了”“可读性优先”“鸭子类型”),逻辑直观且符合语言习惯。__call__的合理使用能显著提升代码的Pythonic程度,但滥用则会破坏可读性。 1. __
阅读全文
posted @ 2025-11-05 13:29 wangya216
阅读(20)
评论(0)
推荐(0)
Python中__call__与__class__机制解析
摘要: Python中__call__与__class__机制解析 目录 引言:特殊成员在Python对象模型中的角色 __call__方法是语法糖吗?——本质、触发逻辑与语法糖辨析 __class__属性的核心作用:对象与类的绑定纽带 obj.class.call()的执行逻辑:从对象到类再到元类的调用链
阅读全文
posted @ 2025-11-05 13:21 wangya216
阅读(50)
评论(0)
推荐(0)
Python的`__call__`方法:让对象变成“可调用函数”
摘要: Python的__call__方法:让对象变成“可调用函数” 在Python中,()是“调用符号”——我们用它调用函数(如func())、创建类实例(如MyClass())。但你可能不知道:普通对象也能通过__call__方法变成“可调用对象”,像函数一样用obj()调用。本文通过“定义→原理→实例
阅读全文
posted @ 2025-11-05 13:02 wangya216
阅读(234)
评论(0)
推荐(0)
Python元类机制:定义规则、应用方式及方法关系解析
摘要: Python元类机制:定义规则、应用方式及方法关系解析 目录 引言:元类作为类的创建者 自定义元类的定义规则:为何必须继承自type? 使用元类定义普通类的方式:显式、隐式与动态 元类定义的普通类是否允许继承其他类? 元类中__new__、__init__与__call__的关系:职责与调用逻辑 结
阅读全文
posted @ 2025-11-05 12:29 wangya216
阅读(75)
评论(0)
推荐(0)
从C语言“变量”到Python“名字”:跨语言内存模型认知迁移与教学干预研究
摘要: 从C语言“变量”到Python“名字”:跨语言内存模型认知迁移与教学干预研究 摘要 高校“先C后Python”教学路径普遍引发认知负迁移现象。本文系统辨析C语言“变量即内存地址别名”与Python“名字即对象引用绑定”的本质差异,基于CPython 3.11源码提出“存储语义与绑定语义”的分析框架,
阅读全文
posted @ 2025-11-05 11:36 wangya216
阅读(29)
评论(0)
推荐(0)
Python中的“老祖宗”与“造物主”:object和type的那些事儿
摘要: Python中的“老祖宗”与“造物主”:object和type的那些事儿 目录 先搞懂一个核心:Python里“万物皆对象” object类:所有对象的“老祖宗” type类:所有类的“造物主” 绕不晕的关系:object和type的“互相成就” 关键机制:实例关系的“传递性” 总结:为什么它们是P
阅读全文
posted @ 2025-11-05 09:59 wangya216
阅读(72)
评论(0)
推荐(0)
什么是元编程?
摘要: 什么是元编程? 元编程(Metaprogramming)是一种特殊的编程范式,核心思想是“让程序能够像操作数据一样操作自身或其他程序的结构”。简单来说,元编程就是“编写能生成、修改或操控代码的代码”——程序运行时不仅能处理数据,还能动态创建类、函数,修改类的属性/方法,甚至改变代码的执行逻辑。 元编
阅读全文
posted @ 2025-11-05 09:55 wangya216
阅读(192)
评论(0)
推荐(0)
2025年11月4日
急切、惰性与延迟计算
摘要: 一文分清Python中的三种计算策略:急切、惰性与延迟计算 在Python处理数据时,“什么时候执行计算”是决定代码效率与内存占用的关键。同样是生成100万条数据,有的写法会瞬间占满内存,有的却能轻量运行;同样是复杂计算,有的会立刻执行,有的却能等到需要结果时再“动手”。这背后是三种核心计算策略的差
阅读全文
posted @ 2025-11-04 09:55 wangya216
阅读(78)
评论(0)
推荐(0)
在Python中,如何通过抽象基类实现生成器、迭代器、可迭代对象?
摘要: 在Python中,抽象基类(Abstract Base Class, ABC)是定义接口规范的“模板”,它通过@abstractmethod强制子类实现特定方法,确保所有子类都符合统一的接口标准。对于可迭代对象、迭代器、生成器这三者,Python的collections.abc模块提供了对应的抽象基
阅读全文
posted @ 2025-11-04 09:53 wangya216
阅读(20)
评论(0)
推荐(0)
python中的`yield`、`next()`、`send()`的关系
摘要: 在Python中,yield是生成器函数的“核心开关”——它不仅能让函数返回一个值,更能暂停函数执行并保存当前状态,等待下次被唤醒时从暂停处继续运行。这种“暂停-恢复”的特性,让生成器实现了“惰性求值”和“状态保持”,而next()和send()则是与生成器交互的“遥控器”,分别负责“唤醒生成器”和
阅读全文
posted @ 2025-11-04 09:31 wangya216
阅读(135)
评论(0)
推荐(0)
一文理清Python中的迭代器、可迭代对象与生成器
摘要: 一文理清Python迭代器、可迭代对象与生成器 一、引言 在Python中,“迭代”是最基础的操作之一——从遍历列表到处理大型数据集,我们几乎每天都在与它打交道。但支撑这一操作的三个核心概念——可迭代对象、迭代器和生成器,却常常让人混淆: 为什么列表能被for循环遍历,却不能直接用next()函数获
阅读全文
posted @ 2025-11-04 09:29 wangya216
阅读(238)
评论(0)
推荐(0)
只实现 `__getitem__()` 方法的对象也可以被称为“可迭代对象”吗?
摘要: 只实现 __getitem__() 方法的对象实际上是可迭代对象。 但这类对象不会被 isinstance(obj, Iterable) 判定为 True(因为 Iterable 抽象基类的判定依赖 iter 方法)。 这是“实际可迭代”与“形式上被识别为 Iterable”的区别。 在 Pytho
阅读全文
posted @ 2025-11-04 09:07 wangya216
阅读(34)
评论(0)
推荐(0)
2025年11月3日
Python中的数据串用:以推荐系统中“用户偏好管理”为例
摘要: Python中的数据串用:以推荐系统中“用户偏好管理”为例 在推荐系统中,“用户偏好管理”是核心模块之一。它需要精准记录每个用户的浏览历史、评分、兴趣标签等数据,以此为基础生成个性化推荐。但如果在实现时忽略了Python中“可变对象引用”的特性,就可能出现“数据串用”——用户A的偏好意外污染用户B的
阅读全文
posted @ 2025-11-03 23:38 wangya216
阅读(18)
评论(0)
推荐(0)
Python生成器表达式详解(含与列表推导式核心对比、别名探讨)
摘要: 从“囤货”到“现做”:Python生成器表达式详解(含与列表推导式核心对比) 在Python中,处理数据时经常会遇到一个矛盾:既要简洁的语法,又要避免大量数据占用内存。列表推导式虽能简化代码,却会“一次性生成所有元素”,面对大数据时容易引发内存爆炸;而生成器表达式恰好解决了这个问题——它采用“惰性求
阅读全文
posted @ 2025-11-03 20:59 wangya216
阅读(151)
评论(0)
推荐(0)
Python列表推导式完全指南
摘要: 从循环到一行代码:Python列表推导式完全指南 在Python中,列表推导式(List Comprehension)是一种简洁、高效的创建列表的语法。它能将原本需要多行循环+条件判断的代码,浓缩成一行可读性强的表达式。但对新手来说,这种“一行代码”可能显得晦涩——本文通过10+实例,从基础到进阶,
阅读全文
posted @ 2025-11-03 20:53 wangya216
阅读(264)
评论(0)
推荐(0)
一行“优雅”代码踩爆3x3矩阵:Python列表乘法的“共享引用”陷阱
摘要: 一行“优雅”代码踩爆3x3矩阵:Python列表乘法的“共享引用”陷阱 很多Python新手初次创建多维列表时,都会被[[0] * 3] * 3这种写法吸引——一行代码搞定3x3矩阵,看起来简洁又聪明。可当你像这样修改一个元素时,却会遭遇“全体叛变”的诡异场景: # 看似优雅的3x3矩阵创建 mat
阅读全文
posted @ 2025-11-03 20:44 wangya216
阅读(65)
评论(0)
推荐(0)
从O(n²)到O(n):Python字符串拼接的效率陷阱与最佳实践
摘要: 从O(n²)到O(n):Python字符串拼接的效率陷阱与最佳实践 在Python开发中,字符串拼接是最常见的操作之一。但看似简单的+号拼接,在循环场景下可能埋下严重的性能隐患。本文通过两段代码的对比,拆解字符串拼接的效率差异根源,带你理解为什么“列表+join”是更优的选择。 一、两段代码的直观对
阅读全文
posted @ 2025-11-03 20:38 wangya216
阅读(87)
评论(0)
推荐(0)
Python 中可变对象的“引用赋值”特性——可变对象的“引用传递”
摘要: 一、踩坑代码 某程序老鸟讲了一个故事: “2019年夏天,我在做一个推荐系统的用户画像模块。当时写了这样的代码: # 当时的蠢代码,现在想起来都脸红 default_preferences = [] # 想着所有用户共享一个默认偏好 users = {} for user_id in user_id
阅读全文
posted @ 2025-11-03 20:21 wangya216
阅读(32)
评论(0)
推荐(0)
2025年10月31日
为什么不加@property和@score.setter也可以给score赋值呢?
摘要: class Student: #定义Student类 def __init__(self): self._score=0 #@property def score(self): #用@property装饰器定义一个用于获取score值的方法 return self._score #@score.se
阅读全文
posted @ 2025-10-31 17:56 wangya216
阅读(27)
评论(0)
推荐(0)
Python 中 `__all__` 与 `import *` 的关系及核心用法
摘要: Python 中 __all__ 与 import * 的关系及核心用法 在 Python 模块导入中,__all__ 和 import *(星号导入)是紧密关联但完全不同的概念,前者是“模块的导出清单”,后者是“导入语法”。下面分点详细拆解: 一、__all__ 与 import * 的核心区别(
阅读全文
posted @ 2025-10-31 17:34 wangya216
阅读(56)
评论(0)
推荐(0)
实例的命名空间和类的命名空间详解(python中,实例方法实际上也是类属性,这个说法对吗?)
摘要: 一、“实例方法实际上也是类属性”的说法是否正确? 正确。在 Python 中,实例方法本质上是类的属性(更准确地说,是“类的方法属性”),存储在类的命名空间中,而非实例的命名空间中。 具体解释: 当我们在类中定义一个实例方法时,这个方法会被存储在类的命名空间中(作为类的一个属性),而不是每个实例的命
阅读全文
posted @ 2025-10-31 09:16 wangya216
阅读(27)
评论(0)
推荐(0)
上一页
1
···
4
5
6
7
8
9
10
下一页