第8.1节 Python类的构造方法__init__深入剖析:语法释义

Python教程:深入理解Python中的__init__()方法 __init__()方法是Python中用于初始化新创建对象的特殊方法。它的底层原理涉及到Python的对象模型、内存管理和C源码中的函数调用。虽然我们无法直接查看Python的C源码,但通过理解Python的对象创建过程和内存管理机制,我们可以深入了解__init__()方法的工作原理。 阅读详情

一、    引言
凡是面向对象设计的语言,在类实例化时都有构造方法,很多语言的构造方法名与类名一致,Python中类的构造方法比较特殊,必须是__init__特殊方法。

二、    语法释义
1.    语法:__init__(self,*args,**kwargs)
其中:
1)    self为创建的实例,由Python自动传入。
各位看官注意:
1>关于self在此不进行详细介绍,如果需要了解请参考本博《第7.5节 揭开Python类中self的面纱》。这里self表示实例自身,从这里可以看出,调用构造方法时,实例已经存在了;
2)    args为实例创建时传入的非关键字参数,打包成元组tuple给函数体调用;
3)    kwargs为实例创建时传入的关键字参数,形式为字典,键值为关键字参数的关键字,字典元素值为对应关键字参数的实参值。

2.    语法释义:
1)    __init__ (self,*args,**kwargs)的参数是与实例定义的参数相对应的,实例定义的语法如下:
实例=类名(*args,**kwargs)
则:
a)    self参数表示实例自身,也就是等号左边的“实例”,按理说在调用构造方法前实例不存在,self也不存在,为什么参数中又可以用self呢?这是由Python自动处理的,在调用构造方法前,Python会调用__new__方法创建实例,因此调用构造方法时Python已经创建了实例,具体请参见本章后面章节关于__new__方法的介绍。从这个意义上说,__new__方法才是真正的构造方法,__init__方法是在此基础上对实例进行特定的处理;
b)    后面两个参数args、kwargs是完全复制实例定义中的两种参数,表示实例定义传入什么参数,则__init__方法是在实例定义参数的基础上增加一个“self”的参数,并将self作为第一个参数。
c)    args、kwargs不是两个参数,是两种参数,其中kwargs是关键字参数,args是非关键字参数,用args、kwargs分别传递创建实例时传递的所有常规实参和关键字参数实参,因此可能是0个或多个真正的参数。*args、**kwargs这种形式的参数传递模式称为“参数收集”,具体内容请参见本博客的《第5.2节 Python的函数参数收集》内容;
2)    构造方法不能有任何返回值,否则会报错;
3)    以上语法是自定义类重写__init__方法时必须遵守的语法,当Python创建实例后自动调用该方法,__init__()方法是可选的,如果自定义类没有重写该方法,则Python 会给出默认的__init__方法。由于构造方法在实例创建后即执行,因此在实例定义时就需要初始化的实例变量可以通过构造方法赋值来定义。

本节介绍了Python中的构造方法__init__的语法及参数说明,请大家好好理解,鉴于该方法比较重要,后面两节将进一步深入介绍。
老猿Python(https://blog.youkuaiyun.com/LaoYuanPython)系列文章用于逐步介绍老猿学习Python后总结的学习经验,这些经验有助于没有接触过Python的程序员可以很容易地进入Python的世界。
欢迎大家批评指正,谢谢大家关注!

python之类的构造方法   Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。下面我们来介绍一下python的类的构造方法。  构造方法的固定名称为__init__(),当创建类的对象时,系统会自动调用构造方法,从而实现对对象进行初始化的操作。   结果如下。   结果如下。   以上就是就是关于Python的类的构造方法相关知识,可以参考一下,觉得不错的话,欢迎点赞、 阅读详情

相关推荐

Python类的构造方法详解:实例化案例深入剖析

在这个例子中,我们定义了一个Rectangle类,该类的构造方法接收两个参数width和height,并将其分别赋值给属性self.width和self.height。在这个例子中,我们定义了一个Person类,该类有两个属性name和age,在初始化方法__init__中传入参数name和age,并将其赋值给属性self.name和self.age。通过上面这两个例子,我们可以看到构造方法的作用和用法,它可以帮助我们在对象实例化时对对象进行一些初始化操作,帮助我们更好的管理和维护对象。

uote_e的博客 268

Python 类的构造方法、析构方法、实例方法

class 类:def 实例方法(self):self.属性实例方法定义在类中,它的第一个参数 self 指向调用该方法的对象,在实例方法中通过 “self.属性” 访问对象的实例属性。class 类:def __init__(self, 参数):self.属性 = 参数对象 = 类(参数)在第 2 行,在类中定义了一个方法 __init__,该方法被称为构造方法方法名的前缀和后缀是两个下划线 _方法的第一个参数 self 指向新创建的对象方法的其余参数用于设定对象的属性。

很酷的站长的博客 1667

IsaacLab从入门到精通(二) 导入自定义机器人

IsaacLab系列第二讲,导入自定义的机器人及设置

DejaWu33的博客 8465

python类的构造方法名称_第8.1节 Python类的构造方法__init__深入剖析:语法释义

一、 引言凡是面向对象设计的语言,在类实例化时都有构造方法,很多语言的构造方法名与类名一致,Python中类的构造方法比较特殊,必须是__init__特殊方法。二、 语法释义1.语法:init(self,*args,**kwargs)其中:1)self为创建的实例,由Python自动传入。请注意:关于self在此不进行详细介绍,如果需要了解请参考本博《第7.5节 揭开Python类中self的面纱...

weixin_39963830的博客 436

小米手机安装Burp证书失败原因与DER格式改造指南

CA证书是HTTPS抓包和移动安全测试的基础组件,其本质是遵循X.509标准的数字凭证,依赖ASN.1/DER编码格式与完整证书链实现可信验证。Android系统默认支持PEM和DER两种编码,但MIUI自14版本起强化安全策略,仅识别DER二进制格式,并强制校验Subject Alternative Name(SAN)、Basic Constraints及证书链完整性。这种企业级加固逻辑导致Burp Suite导出的PEM格式.cer文件在小米设备上‘安装成功但无效’。本文聚焦证书格式转换、SAN字段注入

weixin_33646989的博客 625

halcon 检测直线

图中后三个对象既是检测出的图像;

qq_59062726的博客 665

python构造方法报错_第8.1节 Python类的构造方法__init__深入剖析:语法释义

一、 引言凡是面向对象设计的语言,在类实例化时都有构造方法,很多语言的构造方法名与类名一致,Python中类的构造方法比较特殊,必须是__init__特殊方法。二、 语法释义1.语法:init(self,*args,**kwargs)其中:1)self为创建的实例,由Python自动传入。请注意:关于self在此不进行详细介绍,如果需要了解请参考本博《第7.5节 揭开Python类中self的面纱...

weixin_39685674的博客 144

GROMACS自由能景观图绘制全流程:从PCA分析到Origin 3D可视化(附避坑指南)

本文详细解析了使用GROMACS绘制自由能景观图的全流程,涵盖从PCA分析、数据预处理、自由能计算到最终在Origin中进行3D可视化的完整步骤。文章重点分享了数据处理与格式转换中的常见“避坑”指南,帮助研究者从分子动力学轨迹中有效提取并解读构象自由能信息,深化对生物大分子动力学过程的理解。

oauth7security的博客 309

python什么时候要构造方法init_第8.1节 Python类的构造方法__init__深入剖析:语法释义...

一、 引言凡是面向对象设计的语言,在类实例化时都有构造方法,很多语言的构造方法名与类名一致,Python中类的构造方法比较特殊,必须是__init__特殊方法。二、 语法释义1. 语法:__init__(self,*args,**kwargs)其中:1) self为创建的实例,由Python自动传入。各位看官注意:1>关于self在此不进行详细介绍,如果需要了解请参考...

weixin_26775679的博客 317

实战MSP-M0G3507与陶晶驰串口屏的通信协议解析

本文详细解析了MSP-M0G3507微控制器与陶晶驰串口屏的通信协议实现。内容涵盖串口配置、协议帧结构、数据校验机制及ASCII协议实战代码,重点介绍了陶晶驰串口屏的指令集应用和调试技巧,为嵌入式开发提供可靠的串口通信解决方案。

h9j8k7l6m5n的博客 867

(王道408考研数据结构)第一章绪论-第二节1:算法的基本概念、算法的特性及设计要求

算法(Algorithm):是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作王道视频课中讲到了一个例子,展示了算法就是解决问题的特定步骤的描述对于给定的问题可以有多种多样的算法来解决,只不过这些算法有各自的优点和缺点。

快乐江湖的博客 2682

python提供的默认的构造方法是什么_第8.1节 Python类的构造方法__init__深入剖析:语法释义...

一、 引言凡是面向对象设计的语言,在类实例化时都有构造方法,很多语言的构造方法名与类名一致,Python中类的构造方法比较特殊,必须是__init__特殊方法。二、 语法释义1.语法:init(self,*args,**kwargs)其中:1)self为创建的实例,由Python自动传入。请注意:关于self在此不进行详细介绍,如果需要了解请参考本博《第7.5节 揭开Python类中self的面纱...

weixin_39751391的博客 1162

098、C3k2_Ghost:用 GhostConv 替代 C3k2 内标准卷积的轻量化改造代码

本文介绍了用GhostConv轻量化改造YOLOv11中C3k2模块的实践。作者通过线上部署案例引出问题,详细解析了GhostConv的核心实现逻辑,指出直接替换标准卷积会导致的两个关键问题:通道数不匹配和kernel_size冲突。文章提供了完整的C3k2_Ghost实现代码,包含注意事项和调试技巧。消融实验显示,该方法在小模型上可减少27%-28%参数量、34%-35%FLOPs,仅损失0.8mAP。作者总结了适用场景:小模型效果显著,大模型需谨慎;检测小目标任务不推荐;训练时需调整学习率。最后强调sh

sundong_81的博客 62

python中类的构造方法中怎么定义参数_第8.1节 Python类的构造方法__init__深入剖析:语法释义...

一、 引言凡是面向对象设计的语言,在类实例化时都有构造方法,很多语言的构造方法名与类名一致,Python中类的构造方法比较特殊,必须是__init__特殊方法。二、 语法释义1. 语法:__init__(self,*args,**kwargs)其中:1) self为创建的实例,由Python自动传入。各位看官注意:1>关于self在此不进行详细介绍,如果需要了解请参考...

weixin_35861221的博客 425

UG NX二次开发(C#)-读取PMI对象的名称

摘要:本文介绍了在UG NX中通过NXOpen获取PMI对象名称的方法。首先说明PMI对象初始无名称,可通过重命名或属性设置名称。然后提供C#代码示例,展示如何遍历PMI集合获取对象名称,并显示名称和类型信息。适用于需要操作PMI对象的开发人员,欢迎加入技术交流QQ群749492565。(99字)

GimiGimmy 590

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解

第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解 一、 引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类没有重写构造方法,Python将会给出默认的__init__方法。上述介绍适用于自定义类没有自定义父类的情况,如果自定义类是从其他自定义类派生的,又会怎样呢? 二、 构造方法与继承 为了...

老猿Python 2464

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

第8.2节 Python类的__init__方法深入剖析:构造方法案例详解

前面《第8.1节 Python类的构造方法__init__深入剖析:语法释义》一节介绍了构造方法定义的语法,并进行了语法解释说明,本节将通过案例来说明构造方法参数传递及返回值的情况。 一、 案例说明 本节定义一个汽车类,它有四个实例变量:wheelcount, power,oilcostperkm,totaldistance,分别对应轮子数、动力、每公里油耗、行驶总里程。为了聚焦内容,我们只...

老猿Python 2752

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

python类继承中构造方法_第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解...

第8.3节Python类的__init__方法深入剖析:构造方法与继承详解一、 引言上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类没有重写构造方法,Python将会给出默认的__init__方法。上述介绍适用于自定义类没有自定义父类的情况,如果自定义类是从其他自定义类派生的,又会怎样呢?二、 构造方法与继承为了保障相关逻辑的正确...

weixin_29065959的博客 489

第8.5节 Python类中的__new__方法和构造方法__init__关系深入剖析:执行顺序及参数关系案例详解

上节介绍了__new__()方法这个比构造方法还重要的方法的语法,本节通过案例来详细剖析__new__()方法的细节以及它与构造方法之间的关系。 一、 案例说明 本节以圆Cir类为例来说明,为了说明问题只定义基本的类信息,只包含一个成员半径radius,两个方法,就是__new__()方法和构造方法__init__()方法。 为了方便查看信息,我们将相关参数及返回值的信息输出。 二、 ...

老猿Python 3477

python什么时候要构造方法init_第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解...

第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解一、 引言上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类没有重写构造方法,Python将会给出默认的__init__方法。上述介绍适用于自定义类没有自定义父类的情况,如果自定义类是从其他自定义类派生的,又会怎样呢?二、 构造方法与继承为了保障相关逻辑的正...

weixin_42545066的博客 165

python什么时候要构造方法init_第8.2节 Python类的__init__方法深入剖析:构造方法案例详解...

前面一节介绍了构造方法定义的语法,并进行了语法解释说明,本节将通过案例来说明构造方法参数传递及返回值的情况。一、 案例说明本节定义一个汽车类,它有四个实例变量:wheelcount, power,oilcostperkm,totaldistance,分别对应轮子数、动力、每公里油耗、行驶总里程。为了聚焦内容,我们只在构造方法中显示参数传入值,不做任何处理。类定义如下:class Car():...

weixin_39849930的博客 103
上一篇: 第八章 Python类中常用的特殊变量和方法
下一篇: 第8.2节 Python类的__init__方法深入剖析:构造方法案例详解
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值