Python之构造函数

参考:

Python之构造函数_构造函数 python-CSDN博客

构造函数的特点:

创建对象;给对象的成员变量赋值

构造函数和成员函数之间的区别:

  1. 成员函数需要被手动调用,但是,构造函数在创建对象的过程中是自动被调用的
  2. 对于同一个对象而言,成员函数可以被调用多次,但是,构造函数只能被调用一次
#1.构造函数被调用
'''成员函数需要被手动调用,但是,构造函数在创建对象的过程中是自动被调用的'''class Check():#成员变量num1 = 0s1 = ""#成员方法def show(self):print("showing")#构造函数def __init__(self):print("构造函数被执行了")c = Check()          #构造函数被执行了
c.show()             #showing
#2.给构造函数添加参数class Check1():#成员变量num1 = 0s1 = ""#成员方法def show(self):print("showing")#构造函数def __init__(self,*s):     #设置不定长参数print("构造函数被执行了~~~")#注意1:当在类中定义了构造函数,并且给构造函数设置了参数,系统将不再提供无参的构造函数
#在创建对象的时候,注意参数的匹配问题
#注意2:在同一个类中,构造函数只能出现一次
c1 = Check1(10,20)            #构造函数被执行了~~~
c1 = Check1()              #构造函数被执行了~~~

    #构造函数
    def __init__(self,*s):     #设置不定长参数
        print("构造函数被执行了~~~") 

#3.构造函数的作用
'''对于同一个对象而言,成员函数可以被调用多次,但是,构造函数只能被调用一次'''
class Check2():#成员变量num1 = 0s1 = ""#成员方法def show(self):print("showing")#构造函数#构造函数的形参列表一般和成员变量有关【主要给成员变量赋值】def __init__(self,n,s):print(n,s)num1 = ns1 = sc2 = Check2(10,"abc")           #10 abc
print(c2.num1,c2.s1)        #0
#4.self的作用:通过self区分成员变量和局部变量
class Check3():#成员变量num1 = 0s1 = ""#成员方法def show(self):print("showing")#构造函数#构造函数的形参列表一般和成员变量有关【主要给成员变量赋值】def __init__(self,n,s):print(n,s)#此时的num1并不是一个局部变量,而是一个成员变量self.num1 = nself.s1 = sc3 = Check3(11,"abc")           #11 abc
print(c3.num1,c3.s1)        #11 abc
#5.使用self之后:可以省略成员变量的定义
class Check4():#成员方法def show(self):print("showing")#构造函数def __init__(self,num1,s1):print(num1,s1)#定义成员变量,成员变量赋初始值self.num1 = num1self.s1 = s1c4 = Check4(12,"abc")           #12 abc
print(c4.num1,c4.s1)        #12 abc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/228306.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

八大排序——快速排序(霍尔 | 挖空 | 前后指针 | 非递归)

我们今天来讲讲八大排序中的快速排序,快速排序最明显的特点就是排序快,时间复杂度是O(N* logN),但是坏处就是如果排序的是一个逆序的数组的时候,时间复杂度是O(N^2),还不用我们的插入…

被带偏的中国云计算,重归正途

文 | 智能相对论 作者 | 叶远风 阿里云战略聚焦公共云,对整个云计算市场而言都是一场自我审视。 从市场背景、行业发展、中外对比等多个方面,业界舆论给出了大量详实的数据分析,已经对阿里云为什么要聚焦公共云有了结论,这里不…

会 C# 应该怎么学习 C++?

会 C# 应该怎么学习 C? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「C的资料从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家!!&a…

Vue3源码梳理:响应式系统的前世今生

响应性数据的前世 js的程序性: 一套固定的,不会发生变化的执行流程 1 )没有响应的数据 // 定义商品对象 const product {price: 10,quantity: 2 }// 总价格 let total product.price * product.quantity console.log(总价格:${total}) //…

【Linux】项目自动化构建工具 - make/Makefile

背景 会不会写makefile,从侧面说明了一个人是否具备完成大型工程的能力。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编…

云渲染技术下的虚拟现实:技术探索与革新思考

虚拟现实(含增强现实、混合现实)是新一代信息技术的重要前沿方向,是数字经济的重大前瞻领域,将深刻改变人类的生产生活方式,产业发展战略窗口期已然形成。但是虚拟现实想要深入改变影响我们的生活,以下技术…

数据结构和算法-最小生成树(prim和krusakal)和最短路径问题(BFS和dijkastra和floyd)

文章目录 最小生成树总览生成树广度优先生成树深度优先生成树最小生成树Prim算法Kruskal算法Prim vs KrusakalPrim的实现Kruskal的实现 小结 最短路径问题单源最短路径问题BFS求无权图的单源最短路径小结Dijkastra算法算法时间复杂度不适用情况 每一对顶点的最短路径问题Floyd算…

C语言目录

以下是根据韦东山C快速学习视频,一天时间过了一下,个人觉得收获很大 : 目录: C语言复习之变量:https://blog.csdn.net/qqmrchen124/article/details/135045434 C语言之结构体,变量赋值等: https://blog.csdn.net/qqmrchen124/arti…

SQL Server 远程连接服务器数据库

本文解决sql server的远程连接问题。需要开启防火墙,开启端口,并处理权限不足的报错: 【use 某数据库】The server principal "[server]" is not able to access the database "[database]" under the current security context. 【…

探秘 AJAX:让网页变得更智能的异步技术(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

低代码发展现状调研和思考

低代码开发是近年来迅速崛起的软件开发方法,让编写应用程序变得更快、更简单。有人说它是美味的膳食,让开发过程高效而满足,但也有人质疑它是垃圾食品,缺乏定制性与深度。你认为低代码到底是美味的膳食还是垃圾食品呢,…

C++初学者使用Dev-C++5.11必备的小技巧

一、安装的软件是英文怎么办?陈老师来帮你解决! 步骤1:打开软件,不用我交了吧,看见一个单词长的像 Tools,看见了吧 步骤2:对,找到那个红色框子框起来的单词,最长的那个 步骤3:对,继续选择红色框子里的简体中文/Chinese,不是下面那个,注意,不要选错哟 步骤4:点击…

MySQL | 往数据库中插入时间时,差了八个小时(时区设置)

一:问题 在往数据库中插入(读取)时间的时候,会相差八个小时,这是常见的问题,原因是因为时区设置的问题 二:知识点 UTC:Coordinated Universal Time 协调世界时。 GMT:…

C++ 报错 error invalid types ‘int[int]‘ for array subscript 原因及解决方案

一般是数组的问题,目前总结出3种可能: 1、数组变量名不一致,或者没定义。比如你定义了一个ans数组,但是你在用的时候误写成了a数组(oj应该爆CE) 2、数组空间不够,访问越界。比如你要访问a[6]&a…

【Qt5】QDialog的pos函数

2023年12月14日,周四下午 QDialog的pos()函数是用于获取窗口的位置。它返回一个QPoint对象,表示窗口的左上角在父窗口坐标系中的坐标。 窗口的位置是相对于其父窗口的坐标系的。如果QDialog作为一个顶级窗口,那么父窗口就是屏幕。如果QDialo…

Unity 控制刚体的移动与旋转的方法

在场景创建一个Cube,并添加刚体,如图: 编写脚本: using System.Collections; using System.Collections.Generic; using UnityEngine;[RequireComponent(typeof(Rigidbody))] public class RibRotate : MonoBehaviour {//private Vector3 mo…

使用LM Studio在本地运行LLM完整教程

GPT-4被普遍认为是最好的生成式AI聊天机器人,但开源模型一直在变得越来越好,并且通过微调在某些特定领域是可以超过GPT4的。在开源类别中出于以下的原因,你可能会考虑过在本地计算机上本地运行LLM : 脱机:不需要互联网连接。模型…

[RK-Linux] 移植Linux-5.10到RK3399(八)| 配置HYM8563支持RTC功能

文章目录 一、HYM8563二、原理图三、设备树四、调试一、HYM8563 HYM8563是一款低功耗CMOS实时时钟/日历芯片,它提供一个可编程的时钟输出,一个中断输出和一个掉电检测器,所有的地址和数据都通过I2C总线接口串行传递。最大总线速度为400Kbits/s,每次读写数据后,内嵌的字地…

nginx_rtmp_module 之 ngx_rtmp_mp4_module 的mp4源码分析

一:整体代码函数预览 static ngx_int_t ngx_rtmp_mp4_postconfiguration(ngx_conf_t *cf) {ngx_rtmp_play_main_conf_t *pmcf;ngx_rtmp_play_fmt_t **pfmt, *fmt;pmcf ngx_rtmp_conf_get_module_main_conf(cf, ngx_rtmp_play_module);pfmt ngx_ar…