python类和对象

一、什么是类和对象

类和对象一般是编程中较早接触到的比较抽象的概念,其实我们只要按照我们现实生活的实例去类比,就很好理解了

概念理解

我们可以把类比做是一个盖房子的图纸,对象比做是根据图纸去创建出来的一栋房子,这样每栋房子的户型,都是和图纸是一样的,所以说,类就好像一个规范,房子是根据类去创建的实物。同时,我们在拿到房子之后,是不是可以自己装修,每个人喜欢的装修风格都不一样,有的人喜欢简约风,有的人喜欢豪华装修,这样我们每间房子,也可以有不一样的地方,这就是我们后面要说的继承,多态…

代码理解

1、类的定义

class Home:room = 3height = "2m" # 类属性 - 可以理解为图纸上面写的,每间房子的高度,材料等信息,这个信息对于每栋房子都是一样的, 所以在每个房子中,都可以有一个height属性,他的值为"2m"def __init__(self, room):      #  创建一个构造方法   构造方法解释:构造方法是一个在对象创建时,执行的方		法,可以理解为,在房子施工前,记录下用户需要几室几厅,然后按需去建造,具体如何使用,后面会介绍self.room = room                 # 实例属性     这里的意思是把传进来的room 赋值给类属性的room def sleep(self,name):print(f'{name}在睡觉')        #方法    每间房子的作用,都可以用来睡觉@staticmethod                  #静态方法          静态方法是与类平行的方法,可以通过类名.方法名直接调用def info():print("This is a Home")

2、类的使用

zhangsan_home = Home()   #创建对象,可以理解为,给张三创建一个属于他的房子
lisi_home = Home(4)  #给李四创建一个房子,但是李四需要四室的房子,所以这里走到__init__方法传进去一个4,给room进行赋值,
lisi_home.sleep('李四')      #这里是调用类中的睡觉方法Home.info()                       #这里是直接通过类名直接调用静态方法             

代码示例

class Home:height = "2m"   #类属性的定义room = 3def __init__(self,room = room):    #构造方法,这里有个小细节,下面张三的对象在构造的时候,并没有传room,这时候,我们就给room一个默认值,这样他就变成可选参数了self.room = roomdef sleep(self,name):       #普通方法,也是最常用的方法print(f'{name}在睡觉')def print_message(self):    #用来打印当前房子的信息print(f'当前房子{self.height}高,{self.room}间房子')@staticmethoddef info():                 #静态方法print('我是静态方法')zhangsan_home = Home()
zhangsan_home.sleep('张三')
zhangsan_home.print_message()lisi_home = Home(3)
lisi_home.print_message()Home.info()

运行结果
在这里插入图片描述

结语

类和对象是面向对象语言基本的概念,是从面向过程到面向不可或缺的知识,刚开始学习会有些抽象,这里建议初学者先使用起来,这样在后面的使用时,自然就会慢慢加深对类和对象的理解了

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

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

相关文章

太原理工大学软件设计与体系结构 --javaEE

这个是简答题的内容 选择题的一些老师会给你们题库,一些注意的点我会做出文档在这个网址 项目目录预览 - TYUT复习资料:复习资料 - GitCode 希望大家可以给我一些打赏 什么是Spring的IOC和DI IOC 是一种设计思想,它将对象的创建和对象之间的依赖关系…

CNN Test Data

由于数据量过大,打不开了 搞一组小的吧。收工睡觉 https://download.csdn.net/download/spencer_tseng/90256048

Windows下调试Dify相关组件(2)--后端Api

1.部署依赖的服务(代码最外层的docker目录) 1.1 将middleware.env.example复制,并改名为middleware.env。 1.2 查看docker-compose.middleware.yaml,有5个服务 db:postgres数据库。 redis:redis缓存。 sa…

从预训练的BERT中提取Embedding

文章目录 背景前置准备思路利用Transformer 库实现 背景 假设要执行一项情感分析任务,样本数据如下 可以看到几个句子及其对应的标签,其中1表示正面情绪,0表示负面情绪。我们可以利用给定的数据集训练一个分类器,对句子所表达的…

HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现

HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现 最近在学习鸿蒙开发过程中,阅读了官方文档,在之前做flutter时候,经常使用overlay,使用OverlayEntry加入到overlayState来做添加悬浮按钮、提示弹窗、加载中指示器、加载失败的t…

基于华为ENSP的OSPF状态机、工作过程、配置保姆级别详解(2)

本篇技术博文摘要 🌟 基于华为enspOSPF状态机、OSPF工作过程、.OSPF基本配置等保姆级别具体详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法 引言 📘 在这个快速发展的技术时代,与时俱进是每个IT人的必修课。我…

DeepSeek:性能强劲的开源模型

deepseek 全新系列模型 DeepSeek-V3 首个版本上线并同步开源。登录官网 chat.deepseek.com 即可与最新版 V3 模型对话。 性能对齐海外领军闭源模型​ DeepSeek-V3 为自研 MoE 模型,671B 参数,激活 37B,在 14.8T token 上进行了预训练。 论…

Elastic-Job相关

文档参考视频:09_SpringBoot案例演示_哔哩哔哩_bilibili 一、Elastic-Job介绍 Elastic-Job 是一个轻量级、分布式的任务调度框架,旨在解决分布式环境下的定时任务调度问题。 1.1. Elastic-Job 的核心组件 Elastic-Job 是由多个核心组件构成的&#x…

【Linux】文件 文件描述符fd

🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 🌻个人主页:路飞雪吖~ 一、C文件接口 🌟写文件 🌠小贴士: 🌠stdin && stdout && stderr Linux下…

Java Spring Boot实现基于URL + IP访问频率限制

点击下载《Java Spring Boot实现基于URL IP访问频率限制(源代码)》 1. 引言 在现代 Web 应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段。为了保护系统资源,防止服务器过载或服务不可用,需要对接口的访问频率进行限制。本文将介绍如…

QML states和transitions的使用

一、介绍 1、states Qml states是指在Qml中定义的一组状态(States),用于管理UI元素的状态转换和属性变化。每个状态都包含一组属性值的集合,并且可以在不同的状态间进行切换。 通过定义不同的状态,可以在不同的应用场…

SpringCloud

1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构:将业务的所有功…

DSP+Simulink——点亮LED灯(TMSDSP28379D)超详细

实现功能:DSP28379D-LED灯闪烁 :matlab为2019a :环境建立见之前文章 Matlab2019a安装C2000 Processors超详细过程 matlab官网链接: Getting Started with Embedded Coder Support Package for Texas Instruments C2000 Processors Overview of Creat…

java_将数据存入elasticsearch进行高效搜索

使用技术简介: (1) 使用Nginx实现反向代理,使前端可以调用多个微服务 (2) 使用nacos将多个服务管理关联起来 (3) 将数据存入elasticsearch进行高效搜索 (4) 使用消息队列rabbitmq进行消息的传递 (5) 使用 openfeign 进行多个服务之间的api调用 参…

最近在盘gitlab.0.先review了一下docker

# 正文 本猿所在产品的代码是保存到了一个本地gitlab实例上,实例是别的同事搭建的。最近又又又想了解一下,而且已经盘了一些了,所以写写记录一下。因为这个事儿没太多的进度压力,索性写到哪儿算哪儿,只要是新了解到的…

计算机网络(四)网络层

4.1、网络层概述 简介 网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输 这些异构型网络N1~N7如果只是需要各自内部通信,他们只要实现各自的物理层和数据链路层即可 但是如果要将这些异构型网络互连起来,形成一个更大的互…

AI人工智能(2):机器学习

1 简介 机器学习(Machine Learning)是人工智能(AI)的一个分支,它使计算机系统能够利用数据和算法自动学习和改进其性能。机器学习是让机器通过经验(数据)来做决策和预测。机器学习已经广泛应用于…

Photon最新版本PUN 2.29 PREE,在无网的局域网下,无法连接自己搭建的本地服务器

1.图1为官方解答 2.就是加上这一段段代码:PhotonNetwork.NetworkingClient.SerializationProtocol SerializationProtocol.GpBinaryV16; 完美解决 unity 商店最新PUN 2 插件 不能连接 (环境为:本地局域网 无外网情况 ) …

android 官网刷机和线刷

nexus、pixel可使用google官网线上刷机的方法。网址:https://flash.android.com/ 本文使用google线上刷机,将Android14 刷为Android12 以下是失败的线刷经历。 准备工作 下载升级包。https://developers.google.com/android/images?hlzh-cn 注意&…

Qt官方下载地址

1. 最新版本 Qt官方最新版本下载地址:https://www.qt.io/download-qt-installer 当前最新版本Qt6.8.* 如下图: 2. 历史版本 如果你要下载历史版本安装工具或者源码编译方式安装,请转至此链接进行下载:https://download.qt.i…