python self

Python中self用法详解 Python中类、实例以及self的详解 阅读详情

最近在看python的一些代码,学习并且要掌握这些在短期内还是有一点难度的,日积月累,浮躁是个大问题。对于一个基本没从事过开发的我来说,看到python self这个值的时候很不理解,也不知道它的含义是什么,后面经查阅相关资料才得以弄明白。

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这>个值。这个特别的变量指对象本身,按照惯例它的名称是self。

虽然你可以给这个参数任何名称,但是强烈建议你使用self这个名称——其他名称都是不赞成你使用的。使用一个标准的名称有很多优点——你的程序读者>可以迅速识别它,如果使用self的话,还有些IDE(集成开发环境)也可以帮助你。

你一定很奇怪Python如何给self赋值以及为何你不需要给它赋值。举一个例子会使此变得清晰。假如你有一个类称为MyClass和这个类的一个实例MyObject。当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)——这就是self的原理了。

这也意味着如果你有一个不需要参数的方法,你还是得给这个方法定义一个self参数。

实例:

==========================================================================
In [1]: class Testself:
            def testself(self):
            print "hello self!"

In [2]: p=Testself()

In [3]: p.testself()
hello self!

In [4]:

#如果去掉self的话就会报错
n [6]: class Testself:
        def testself():
        print "hello self!"

In [9]: p=Testself()

In [10]: p.testself()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/home/users/wul/python/<ipython console> in <module>()

TypeError: testself() takes no arguments (1 given)

In [11]:
==========================================================================

类将它们的第一个参数绑定到所属的实例上,这正是类和函数的区别。可以将特性绑定到一个普通函数上,这样就不会有特殊的self参数了
实例2:

==========================================================================
In [26]: class Testself1:
   ....:     def testself1(self):
   ....:         print 'self is must!'
   ....:    
   ....:    

In [27]: def testself2():
   ....:     print 'There is no self!oh yeah!'
   ....:    
   ....:    

In [28]: test=Testself1()

In [29]: test.testself1()
self is must!

In [30]: test.testself1 = testself2

In [31]: test.testself1()
There is no self!oh yeah!
==========================================================================


参考文章: 简明 Python 教程 http://woodpecker.org.cn/abyteofpython_cn/chinese/ch11s02.html

                     Python基础编程

智能办公助手——OpenClaw办公自动化集成(2026办公版) OpenClaw智能办公助手是一款集成任务管理、文档处理等功能的办公自动化系统。该系统采用Python实现,核心功能包括:1)任务管理系统,支持任务增删改查、状态跟踪和统计报表生成;2)文档智能助手,提供文档处理能力。任务管理模块具备优先级设置、状态变更、时间记录等功能,并能生成包含完成率等指标的任务报告。该系统旨在通过自动化办公流程提升工作效率,减少重复性工作。开发者可利用这些模块构建完整的智能办公解决方案。 阅读详情

相关推荐

实战对比:Lmcache+vllm将KVcache卸载到CPU和SSD的性能差异(附完整配置)

本文通过实战对比Lmcache与vLLM在KV Cache卸载到CPU和SSD的性能差异,详细解析了配置优化、基准测试及高级调优策略。实验显示,CPU卸载在低并发下表现优异,而SSD方案在高并发场景中更具性价比优势,为LLM推理任务提供了高效的存储解决方案。

weixin_30664051的博客 700

Python运行提醒:TypeError:takes no arguments

一、如下图所示: 二、可能原因是: def __init__(self,name,age): 这里的 __init__下划线是左右两边各两个,不是一个 看是不是把__init__写成了__int__ 三、正常没错情况下是如下图那样高亮显示的(Sublime Text 中): ...

旅途 3万+

第十二节:C#工业控制编程基础--输出正弦波实验

第十二节:基于c#使用开发板输出正弦波实验 文章目录第十二节:基于c#使用开发板输出正弦波实验一、实验目的:了解采集卡DA相关函数的使用。二、实验内容:利用C#生成正弦波,然后用采集卡DA输出。三、实验步骤:1.打开Visual Studio 2013,新建窗体应用程序项目,配置好板卡dll文件。2.在窗体中放入控件,对控件进行布局排版,并修改他们的Name属性和Text属性。3.在Chart控件内选择Spline型图表,如图2。4.进入编程区域,在public partial class Form1 :

weixin_49237052的博客 2296

基于linux下python学习(封装)

一、面向对象 类的设计:在程序开发中,要设计一个类,通常需要满足以下三个要求: 1、类名  这类事物的名字,满足大驼峰命名法 2、属性 这类事物具有什么样的特征 3、 方法  这类事物具有什么样的行为 eg:小明今年18岁,身高1.75,每天早上要跑步,会去吃东西 类名:Person()  属性:name,age,height    方法:run() eat() (1) # 小猫爱...

xdmaidou的博客 2730

数据库:关系运算整理大全(包括关系代数、元组关系演算、域关系演算)

数据库关系运算: 1. 关系代数(基本关系代数、附加关系代数、扩展关系代数) 2. 元组关系演算 3. 域关系演算

ysji's blog 1万+

akamai3简单分析

akamai流程的简单分析

记录一些web逆向的过程 916

Python中创建类时返回错误TypeError: *****() takes no arguments

Python中创建类时返回错误TypeError: *****() takes no arguments

qq_40967086的博客 1万+

硬件学习手册【总目录】

欢迎大家来到《硬件学习手册》,专栏主要包括 《硬件经验手册》《电子元器件器件手册》《PCB手册》《CPU手册》《元器件选型手册》五个分册。在开始专栏的更新前,博主先列出专栏的大纲,以供大家参考。大家直接点击大纲中的蓝色标题即可轻松传送。

fydar的博客 5851

深入理解python之self

首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。 self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗,不要搞另类,大家会不明白的。下例中将self改为myname一样没有错误: 1 class Person:2 ...

weixin_33714884的博客 635

适航文章汇总:知识体系全面梳理

无论您是行业新手还是经验丰富的专业人士,都可以通过本篇文章快速查找相关资料,提高对适航认证、机载系统、软件及硬件等领域的理解。本部分详细解析ARP 4754A、ARP 4761、DO-178C、DO-254等核心标准,并介绍其在机载系统开发中的应用。介绍FAA、EASA、CCAR等主要航空管理机构的适航规章体系,并说明各类飞行器(如固定翼、旋翼机、无人机等)的适航要求。本部分还探讨硬件设计、验证与确认过程中的挑战。从系统架构设计到机载设备的集成与管理,本部分介绍机载系统的研发体系及适航管理的最佳实践。

qq_41854911的博客 1450

SAP Joule 经过了超过 2.5 亿行 ABAP 代码的训练之后......

披露的统计数据,Joule 提供的这种全新系统交互方式,可将事务性任务执行速度提高 90%,访问 SAP Help Portal 内容的速度提高 95%。在 ABAP 应用开发领域,SAP 官网数据显示,Joule 经过超过 2.5 亿行 ABAP 代码的训练,有信心成为这一领域行业领先的代码助手。刚刚过去的 SAP 蓝宝石大会上,SAP 提到,从2023年第四季度以来,SAP 已经交付了 50 项基于人工智能的创新。让其生成 SAP 应用能够识别的结构化应用数据,业务用户全程无需离开 SAP 应用程序。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 792

读懂python中的self

神奇的self: 在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。 class是面向对象的设计思想,instance(也即是 object,对象)是根据 class 创建的 一个类(class)应该包含 数据 和 操作数据的方法,通俗来讲就是 属性 和 函数(即...

xrinosvip的博客 15万+

深入剖析Zynq AMP模式下CPU1中断响应机制:从原理到创新实践

在异构计算领域,Zynq-7000系列SoC的AMP(Asymmetric Multiprocessing)模式堪称多核编程的瑞士军刀。独立运行环境:CPU0运行Linux,CPU1运行FreeRTOS或裸机程序硬件资源独占:CPU0管理DDR,CPU1使用OCM(片上内存)中断隔离:默认所有中断路由到CPU0这种架构非常适合需要实时响应的工业控制系统——比如用CPU0处理网络通信,CPU1负责电机控制。AMP模式下中断路由的底层原理多维度性能优化技巧工业级可靠性的实现方案。

QQ_778132974的博客 491

Python中self的解释

定义 首先我们要搞明白Python的类中为要什么要用到self这个单词呢,为什么不用&amp;quot;zhangsan&amp;quot;、&amp;quot;lisi&amp;quot;这样的名字呢,这可定有他的用意。查Google翻译解释: self 名词的解释:自;自我;自己 那么问题来了,这里的自己指代的到底是谁,下面听我详细分解。(仅属于自己的见解,有不对的地方,还望不吝赐教) 分析 测试代码以一下这个代码及其它的扩充为基础,先贴代码,为了好理解,别说...

梅花14的博客 5万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python类什么时候加self_python什么时候加self,什么时候不加self

1、self是什么,一般都说指对象本身,这样说了没了用,说了后还是很难懂,因为这样说了后,仍然完全搞不清楚,什么时候变量前需要加self,什么时候不需要加self。造成很多人,已经怕了self,不停地测试,加self减self来测试代码,或者干脆不知道要不要self,所有变量前面一律加self,这样就能瞎猫碰死老鼠了,但不弄清楚,长期这样做法有点悲剧。2、所以不需要这么去想self代表对象本身,换...

weixin_39803207的博客 1979

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

python属性前为何要加self_python什么时候加self,什么时候不加self

1、self是什么,一般都说指对象本身,这样说了没了用,说了后还是很难懂,因为这样说了后,仍然完全搞不清楚,什么时候变量前需要加self,什么时候不需要加self。造成很多人,已经怕了self,不停地测试,加self减self来测试代码,或者干脆不知道要不要self,所有变量前面一律加self,这样就能瞎猫碰死老鼠了,但不弄清楚,长期这样做法有点悲剧。2、所以不需要这么去想self代表对象本身,换...

weixin_39747075的博客 2958

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

如何理解 Python 中的 self

selfselfself是一个常规参数名,用于引用类的实例。它不是 Python 的关键字,而是一个约定。作用:通过self,你可以在类的方法中访问实例的属性和方法。self是 Python 类中非常重要的概念,它允许你在类的方法中访问和操作实例的属性和方法。通过理解self的使用,你可以更好地掌握面向对象编程的基本原理,并编写出更清晰、更灵活的代码。希望这篇博客能帮助你更好地理解和使用self!如果你有任何问题或需要进一步的帮助,请随时联系我。

weixin_53002211的博客 4214

Python中self的解析

flyfish

二分掌柜的 4474

python中的self

神奇的self: 在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。 class是面向对象的设计思想,instance(也即是 object,对象)是根据 class 创建的 一个类(class)应该包含 数据 和 操作数据的方法,通俗来讲就是 属性 和 函数(即调用方法) 类 class 中为啥用使用 self ? 在类的代码(函数)中,需要访问当前的实例中的.

飞翔鱼的博客 8968

python self print_python中的self

self代表类的实例,而非类。class Test:def prt(self):print(self)print(self.__class__)t = Test()t.prt()执行结果如下从上面的例子中可以很明显的看出,self代表的是类的实例。而self.class则指向类。self不必非写成self把上面的代码改写一下。class Test:def prt(this):print(this)...

weixin_39842937的博客 719

python 类self作用_self在Python中有什么用途?

人士如果你正在使用Python,那么“self”这个词是无法逃避的。它用于方法定义和变量初始化。每次定义方法时都显式地使用self方法。在本文中,我们将按照以下顺序深入了解Pyt人士如果你正在使用Python,那么“self”这个词是无法逃避的。它用于方法定义和变量初始化。每次定义方法时都显式地使用self方法。在本文中,我们将按照以下顺序深入了解Python中的self:self在Python中...

weixin_39608680的博客 2157

python的类为什么要加self_python为什么要用self

Python要用self的理由Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数 (self ),但在调用这个方法的时候不必为这个参数赋值。Python类的方法的这个特别的参数指代的是对象本身,而按照Python的惯例,它用self来表示。(当然我们也可以用其他任何名称来代替,只是规范和标准建议我们一致使用self)为何Python给self赋值而你不必给se...

weixin_34805048的博客 3035

python——类中的self和变量

在python的类中会使用到“self”,本文主要是谈谈类中的self和变量的关系。 先看示例代码I。 class Test(object): def __init__ (self, val1): self.val0 = val1 def fun1(self): print(self.val0) def fun2(self, val2): ...

to_qin的博客 2万+

python中的类class及self详解

转载:https://blog.youkuaiyun.com/CLHugh/article/details/75000104 在介绍Python的self用法之前,先来介绍下Python中的类和实例…… 我们知道,面向对象最重要的概念就是类(class)和实例(instance),类是抽象的模板,比如学生这个抽象的事物,可以用一个Student类来表示。而实例是根据类创建出来的一个个具体的“对象”,...

CYummy的博客 1万+

Python里面的self,是谁啊?

类比人类,人类就是一个Python类,每个个体的人代表着实例(对象),而每个人的身份证代表的Python中self,每个人可以凭借身份证去上大学、坐高铁、住酒店...(方法),而Python中的实例(对象)也可以凭着self去调用类的方法。初学者会发现,类的方法(构造方法和实例方法)中都会有一个固定参数self,其实这个参数就是代表着实例(对象)本身,就像是一个身份证,实例可以凭着身份证去调用类方法。可以看出,实例(对象)不一样,打印出的结果也不一样,当类被实例化后,结果打印出:studend_b。

2401_86168842的博客 884

Python中有self和没有self的问题

今天在练习敲代码的时候遇到一个问题就是关于self!!! 教材中定义方法时没有加self,而我自己按照平时的套路敲的时候仍然敲了self,后面再照着教材中去调用该方法时报错,如下: LoginPage().test_user_login(driver,username,password) TypeError: init() missing 1 required positional...

Taxus_shan的博客 1万+
上一篇: Python和Shell简单对照
下一篇: pssh
kumu_Linux
博客等级 码龄14年 68粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值