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

python 构造函数

在这里插入图片描述

在Python中,构造函数是一个特殊的方法,用于在创建类的实例(对象)时自动调用,以初始化对象的属性。构造函数在类中是通过__init__方法来定义的。它的主要作用是为新创建的对象设置初始状态,即初始化对象的属性。

以下是构造函数的几个关键点:

  1. 方法名称固定:构造函数的名称必须是__init__,这是一种约定俗成的特殊方法名。
  2. 自动调用:当创建类的实例时,__init__方法会自动被调用。
  3. 初始化属性:通常在__init__方法中定义和初始化对象的属性。

让我们通过一个简单的例子来说明:

class Person:def __init__(self, name, age):self.name = name  # 初始化name属性self.age = age    # 初始化age属性# 创建Person类的实例
person1 = Person("Alice", 30)# 访问实例的属性
print(person1.name)  # 输出: Alice
print(person1.age)   # 输出: 30
  • class Person: 定义了一个名为Person的类。
  • def __init__(self, name, age): 定义了Person类的构造函数,接受nameage两个参数。
  • self.name = nameself.age = age 在构造函数中,将传入的参数值赋给实例属性nameage
  • person1 = Person("Alice", 30) 创建了一个Person类的实例,并自动调用构造函数进行初始化。

当我们创建person1实例时,构造函数__init__被自动调用,将name设置为"Alice",age设置为30。因此,我们可以通过访问实例属性person1.nameperson1.age来获取这些值。

构造函数还可以接受默认参数,以便在实例化时不必提供所有参数:

class Person:def __init__(self, name, age=25):self.name = nameself.age = ageperson2 = Person("Bob")  # 只传递name参数,age使用默认值
print(person2.name)  # 输出: Bob
print(person2.age)   # 输出: 25

age参数有一个默认值25,因此创建实例person2时只需要传递name参数。

相关文章:

  • 【mybatis解决oracle查询in超过1000条数据】
  • Redis数据类型(上篇)
  • vue+antd实践:在输入框光标处插入内容
  • P9 【力扣+知识点】【算法】【二分查找】C++版
  • Cocos入门2:软件安装
  • Spring MVC 工作流程源码分析
  • Python爬虫之简单学习BeautifulSoup库,学习获取的对象常用方法,实战豆瓣Top250
  • 新能源汽车推行精益生产:绿色动力下的效率革命
  • 使用Lua基本实现分布式锁并自动续期
  • 代码随想录35期Day54-JavaScript
  • 通过LabVIEW提升生产设备自动化水平
  • centos7.8安装Mysql8.4
  • QT实现动态翻译切换
  • linux的磁盘分区与管理
  • 全网唯一:触摸精灵iOS版纯离线本地文字识别插件
  • [译] 怎样写一个基础的编译器
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • Angular 4.x 动态创建组件
  • CSS 三角实现
  • es6--symbol
  • HTTP中的ETag在移动客户端的应用
  • JWT究竟是什么呢?
  • k个最大的数及变种小结
  • mongo索引构建
  • Netty 4.1 源代码学习:线程模型
  • node入门
  • PHP CLI应用的调试原理
  • PHP 小技巧
  • React Transition Group -- Transition 组件
  • vue2.0项目引入element-ui
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 猴子数据域名防封接口降低小说被封的风险
  • 排序算法之--选择排序
  • 实战|智能家居行业移动应用性能分析
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ‌JavaScript 数据类型转换
  • #微信小程序(布局、渲染层基础知识)
  • (10)ATF MMU转换表
  • (C#)一个最简单的链表类
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (二)丶RabbitMQ的六大核心
  • (分布式缓存)Redis哨兵
  • (转)iOS字体
  • (转)Scala的“=”符号简介
  • (转载)Linux 多线程条件变量同步
  • ***监测系统的构建(chkrootkit )
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖