Python 面向对象编程 (二) —— 类函数的定义和构造

news2025/1/15 23:08:39
  • 【无限嚣张(菜菜)】:hello您好,我是菜菜,很高兴您能来访我的博客,我是一名爱好编程学习研究的菜菜,每天分享自己的学习,想法,博客来源与自己的学习项目以及编程中遇到问题的总结。
  • 座右铭:尽人事,听天命
  • 个人主页:无限嚣张(菜菜)

目录

一、类的定义

二、构造函数__init__()

类的定义

        我们把对象比作是一形状不同的饼干,类就是制作饼干的模具,我们通过类定义数据类型的属性(数据)和方法(行为),也就是说,“类将行为和状态打包在一起”。其中类的结构包括方法(函数)和属性(变量),其中方法(函数)也就是我们所说的行为,属性(变量)也就是我们所说的状态,这就是我们所说的类的结构。对象是类的具体实体,一般称为“类的实例”。类看做“饼干模具”,对象就是这个模具制造出来的饼干。从一个类创建对象时,每个对象会共享这个类的行为(类中定义的方法),但会有自己的属性值(不共享状态)。更具体一点的是:“方法代码是共享的,属性数据不共享”。Python中,“一切皆对象”,类的实例也称为“实例对象”。

定义类的语法格式如下:

class 类名:

        类体

要点如下:

1.类名必须符合“标识符”的规则;一般规定,首字母大写,多个单词使用“驼峰原则”。

2.类体中我们可以定义属性和方法。

3.属性用来描述数据,方法(即函数),用来描述这些数据的相关操作。

eg:

# 创建一个类

class Student:  # 定义类名,首字母大写,驼峰原则
    
    # 构造方法
    def __init__(self, name, score):  # self 当前对象本身,必须位于第一个参数
        self.name = name
        self.score = score

    def say_score(self):  # self 当前对象本身,必须位于第一个参数
        print(f"{self.name}的分数是:{self.score}")


sl = Student("yyq", 100)
sl.say_score()

 构造函数__init__()

        类是抽象的,也称为对象的“模板”,我们需要通过类这个模板,创建类的实例对象。然后才能使用类定义的功能。我们知道Python对象包含三个部分:id、type、value。然而Python更进一步说,一个Python对象包含以下几方面:

                1.id(identity 识别码)        

                2.type(对象类型)        

                3.value(对象的值)

                        (1)属性(attribute)

                        (2)方法(method)

 创建对象,我们需要定义构造函数__init__()方法,构造方法用于执行“实例对象的初始化工作”,即对象创建后,初始化当前对象的相关属性,无返回值。

__init__()的要点如下:

1.名称固定,必须为:__init__()

2.第一个参数固定,必须为:self。self指定的就是刚刚创建好的实例对象。

3.构造函数通常用来初始化实例对象的实例属性,如下代码就是初始化实例属性:name和score。

   def __init__(self, name, score):  # self 当前对象本身,必须位于第一个参数
        self.name = name
        self.score = score

4.通过“类名(参数列表)”来调用构造函数。调用后,将创建好的对象返回给相应的变量。比如:s1 = Student("张三",80)

5.__init__()方法:初始化创建好的对象,初始化指的是:“给实例属性赋值”

6.__new__()方法用于创建对象,但我们一般无需重定义该方法。

注:Python 中 self相当于C++中的self指针,JAVA和C#中的this关键字。Python中,self必须为构造函数的第一个参数,名字可以任意修改,名字可以任意修改。但一般遵循惯例,都叫self。

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

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

相关文章

日本知名汽车零部件公司巡礼系列之株式会社137

株式会社137 业务内容: 汽车功能部件制造(离合器系统、制动系统) 代理供货业务(汽车相关制造商) 运输业务(汽车相关制造商) 公司简介: 资本金:5000万日元 员工数:山形工厂44名(男31名,女13名&#xf…

折腾Transmission实现固定IP服务器BT做种教程

title: 折腾Transmission实现固定IP服务器BT做种完美 通过网络分享资源,是为了让人下载,但由于种种原因,放到商业网盘的资源经常会被删除,于是我只好自建简易的http文件下载服务,比如frp.v2fy.com [外链图片转存中……

易基因|动物发育过程中顺式调控区域的活性DNA去甲基化早于脊椎动物起源:重磅研究

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2022年12月02日,澳大利亚悉尼加尔文医学研究所基因组学和表观遗传学系Ozren Bogdanovic研究团队在《SCIENCE ADVANCES》杂志发表了题为“Active DNA demethylation of develo…

随机创建姓名、手机号等信息Faker类创建的对象的各方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 随机创建姓名、手机号等信息 Faker类创建的对象的各方法 [太阳]选择题 以下python代码结果错误的一项是? from faker import Faker fkFaker() print(fk.name()) print(fk.phone_number()) p…

基于gis平台监控的点位规划系统研究

一、背景 自 2002 年天津市启动了以 “警防、民防、技防” 三张网为主要内容的社会治安防控体系。“技防网” 既覆盖天津全域的具有地区特点的城市报警与监控系统。经多年推进建设,“技防网” 已形成了较为完整的架构体系和建设、运行、管理模式,整体架构…

【K3s】第7篇 详解Kubernetes发布服务类型(例如:暴露给 Kubernetes 集群外部的 IP 地址)

目录 1、发布服务类型 2、NodePort 类型 选择你自己的端口 为 type: NodePort 服务自定义 IP 地址配置 1、发布服务类型 对一些应用的某些部分(如前端),可能希望将其暴露给 Kubernetes 集群外部的 IP 地址。 Kubernetes ServiceTypes 允许…

Vue二次封装组件并发布到npm仓库

1.认识npm NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。 使用Vue框架进行开发,组件封装是一个很常规的操作。一个封装好的组件可以在项目的任意地方使…

FFmpeg简单使用:解封装h264 ---- 提取SPS PPS

前言 我们从flv和mp4等文件解封装读取的AVPacket并没有SPS、PPS数据,而是保存在 AVFormatContext -> streams -> codecpar -> extradata里面,下面我们打开一个flv文件看一下 分析一下这块数据,起始位置:0980 大小&#…

【软件测试】测试点总结,收取短信验证码的测试(详全),你的即用宝典......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 现在的APP&#xff…

技术评审管理方案

技术评审(Technical Review, TR)的目的是尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。 技术评审过程域是SPP模型的重要组成部分。本规范阐述了技术评审过程域的三个主要规程: …

基于Java(SSM+SpringBoot+Thymeleaf)+MySQL 开发的论坛社区网站【100010072】

基于 SSM Spring Boot Thymeleaf 开发的论坛社区网站 项目概述 本项目是依据 2019 年牛客项目,基于 SSM Spring Boot Thymeleaf 开发的论坛社区网站,网站实现了如下功能: 使用 Spring Email Interceptor Spring Security 等实现网站…

unity组件介绍

所有物体都是一个空物体,加上一些组件才形成了所需要的GameObject。 这是一个空物体,在Scene场景中没有任何外在表现,因为它只有Transform这个组件,表示它仅仅只有位置,旋转和缩放。 Mesh组件 Mesh Filter mesh filt…

【聆思CSK6 视觉AI开发套件试用】(有彩蛋)AI头肩手势检测

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:Tony_c217AK 牛逼的AI套件 如何3分钟体验AI功能(windows系统 ) 插入上图左边的USB(上图中靠近左边的USB接口),给设备上…

锁,CAS,Synchronized 原理

作者:~小明学编程 文章专栏:JavaEE 格言:热爱编程的,终将被编程所厚爱。 目录 常见的锁 悲观锁与乐观锁 悲观锁 乐观锁 读写锁 重量级锁 vs 轻量级锁 挂起等待锁和自旋锁 公平锁和非公平锁 可重入锁与不可重入锁 CAS …

JavaDS4-链表

目录 1.定义 2.结构 2.1.类似火车 2.2.分类 2.2.1.按方向分 2.2.2.按是否带头节点分 2.2.3.按是否循环分 3.重点掌握 3.1.无头单向非循环链表 3.1.1.在链表的头部添加节点 3.1.2.在链表的任意位置index处添加节点 3.1.3.在链表的尾部添加节点 3.1.4.查询链表的任意…

如何使用单总线?

如何使用单总线?一、什么叫单总线?二、单总线协议?三、怎么使用单总线来做开发?IBUTTON 钥匙读取复制设备项目一、什么叫单总线? 1.如下图,使用单总线的传感器DS18B20 2.使用单总线的储物柜钥匙 3.定义&…

元素偏移量 offset、元素可视区 client和元素滚动 scroll

1、元素偏移量 offset 系列 1.1、offset 概述 offset 翻译过来就是偏移量, 我们使用 offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。 获得元素距离带有定位父元素的位置获得元素自身的大小(宽度高度&#xff09…

【java】static关键字

static可以修饰的内容如下: ● 变量 ● 方法 ● 代码块 ● 内部类 那就有一个问题,为什么static不能修饰外部类? 我们首先看一下static的作用是什么? 先看看其他人怎么解释的: A static method can be accessed with…

RK3588平台开发系列讲解(进程篇)进程的简介

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、进程的四要素二、进程的三种状态三、task_struct数据结构四、进程优先级五、进程系统调用沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍进程的相关知识。 一、进程的四要素 1、有一段程序供其…

Axure 原型适应到不同平台的方法

“老师,公司要求我做一个不同机型的原型,不想重新做,可以适配吗?” “老师,手机有那么多类型,我难道要做那么多的原型吗?” “老师,axure中怎么进行原型的适配呢?应该怎…