news 2026/4/18 7:59:19

【Python小知识】-self是什么?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Python小知识】-self是什么?

self在Python类中是一个非常基础但重要的概念,用大白话解释的话,可以这样理解:

1.self是什么?

self就像是类的实例的“代言人”,代表当前正在操作的那个具体对象。打个比方:如果把类看作是一个“模板”(比如汽车设计图纸),那么实例就是根据这个模板造出来的具体“汽车”。当你要给某辆具体的汽车加油、换挡时,需要指定是哪一辆车——self就是用来指认“当前这辆车”的。

2. 在__init__方法中的作用

QueryRewriter类的__init__方法中:

def__init__(self,model="qwen-turbo-latest"):self.model=model# 这里的self就是实例本身
  • 当你创建实例时(比如rewriter = QueryRewriter()),Python会自动调用__init__方法来初始化这个实例。
  • 此时,self就等于刚刚创建的rewriter实例。
  • self.model = model的意思是:给这个rewriter实例绑定一个名为model的属性,并把传入的model值存进去。

3. 为什么需要self

因为类可以创建多个实例,每个实例的属性可能不同。比如:

rewriter1=QueryRewriter(model="qwen-turbo")# 实例1用qwen-turbo模型rewriter2=QueryRewriter(model="qwen-plus")# 实例2用qwen-plus模型
  • 当调用rewriter1.rewrite_context_dependent_query()时,方法内部需要知道使用的是rewriter1自己的model(即"qwen-turbo"),而不是rewriter2model
  • 这个“自己的”就是通过self来实现的——方法中的self.model会自动指向当前实例的model属性。

4. 小总结

  • self不是Python的关键字,只是一个约定俗成的名字(你也可以用其他名字,但不推荐,因为别人看不懂)。
  • 它的核心作用是连接实例和实例的属性/方法,让实例能“认出自己”并操作自己的数据。
  • 无论调用实例的哪个方法,Python都会自动把实例本身作为第一个参数传给方法,这个参数就是self

举个更通俗的例子

假设QueryRewriter是一个“翻译器工厂”,每个翻译器(实例)可以用不同的语言模型:

  • 当你建一个翻译器时(rewriter = QueryRewriter(model="中文模型")),self就是这个翻译器本身。
  • 你告诉它:“你的模型是中文模型”(self.model = "中文模型")。
  • 之后当你让它翻译时(rewriter.rewrite_query(...)),它会用自己的“中文模型”来工作,而不是其他翻译器的模型——这就是self的作用。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 5:47:32

解决PPT网页化展示难题:免费PPT工具PPTXjs的高效转换方案

解决PPT网页化展示难题:免费PPT工具PPTXjs的高效转换方案 【免费下载链接】PPTXjs jquery plugin for convertation pptx to html 项目地址: https://gitcode.com/gh_mirrors/pp/PPTXjs 想让PPT在网页上流畅展示却苦于复杂的技术门槛?这款免费PP…

作者头像 李华
网站建设 2026/4/16 13:51:36

播客批量下载工具:高效管理与离线收听的完美解决方案

播客批量下载工具:高效管理与离线收听的完美解决方案 【免费下载链接】PodcastBulkDownloader Simple software for downloading podcasts 项目地址: https://gitcode.com/gh_mirrors/po/PodcastBulkDownloader 在数字内容爆炸的时代,播客已成为许…

作者头像 李华
网站建设 2026/4/17 16:42:13

数字创作工具完全指南:释放创意空间的无限可能

数字创作工具完全指南:释放创意空间的无限可能 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Crossing)启发而创…

作者头像 李华
网站建设 2026/4/18 3:37:25

[医学图像工具] MedMNIST:标准化数据集解决方案与实战指南

[医学图像工具] MedMNIST:标准化数据集解决方案与实战指南 【免费下载链接】MedMNIST [pip install medmnist] 18 MNIST-like Datasets for 2D and 3D Biomedical Image Classification 项目地址: https://gitcode.com/gh_mirrors/me/MedMNIST 问题&#xff…

作者头像 李华
网站建设 2026/4/18 3:31:51

Koikatu HF Patch完全指南:轻松掌握6步安装流程

Koikatu HF Patch完全指南:轻松掌握6步安装流程 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch Koikatu HF Patch是一款为Koikatu!和K…

作者头像 李华
网站建设 2026/4/18 0:03:22

Qwen3-Embedding-4B怎么选GPU?显存与并发平衡策略

Qwen3-Embedding-4B怎么选GPU?显存与并发平衡策略 1. Qwen3-Embedding-4B介绍 Qwen3 Embedding 模型系列是 Qwen 家族中专为文本嵌入和排序任务打造的新一代模型,基于强大的 Qwen3 系列密集基础模型构建。该系列覆盖了从 0.6B 到 8B 的多种参数规模&am…

作者头像 李华