7天入门python系列之第六天python面向对象编程

第六天主要是学习Python的面向对象编程

编者打算开一个python 初学主题的系列文章,用于指导想要学习python的同学。关于文章有任何疑问都可以私信作者。对于初学者想在7天内入门Python,这是一个紧凑的学习计划。但并不是不可完成的。第六天开始面向对象编程学习

第6天的学习主要集中在面向对象编程(OOP)的基本概念和如何创建自定义类和对象。

面向对象编程基本概念

面向对象编程是一种编程范式,它使用对象来组织数据和方法。以下是一些基本概念:

  • 类(Class):类是一种模板,用于定义对象的结构和行为。它包含属性和方法的定义。例如,你可以创建一个类来表示汽车,定义汽车的属性(颜色、型号)和方法(启动、停止)。

  • 对象(Object):对象是类的实例,它包含类定义的属性和方法。例如,从汽车类创建的特定汽车对象将具有特定的颜色和型号,并可以执行启动和停止操作。

  • 属性(Attribute):属性是对象的特征或数据。它们对应于类中的变量,用于存储对象的状态。例如,汽车对象的颜色属性可以存储颜色信息。

  • 方法(Method):方法是与对象相关的函数。它们对应于类中的函数,用于定义对象的行为。例如,汽车对象的启动方法可以启动汽车。

创建自定义类和对象

在Python中,可以轻松地创建自定义类和对象。以下是创建一个简单类和对象的示例:

# 创建一个Car类
class Car:# 初始化方法def __init__(self, make, model, year):self.make = makeself.model = modelself.year = yearself.is_running = False# 启动方法def start(self):self.is_running = Trueprint(f"{self.year} {self.make} {self.model} 启动了。")# 停止方法def stop(self):self.is_running = Falseprint(f"{self.year} {self.make} {self.model} 停止了。")# 创建Car类的对象
my_car = Car("Toyota", "Camry", 2020)
your_car = Car("Honda", "Accord", 2021)# 调用对象的方法 ,启动 并停止
my_car.start()
your_car.start()
my_car.stop()

在这个示例中,我们定义了一个Car类,它有属性(makemodelyearis_running)和方法(startstop)。然后,我们创建了两个Car对象(my_caryour_car)并调用它们的方法。

在面向对象编程中,可以创建复杂的对象来模拟现实世界中的实体或概念。以下是一个示例,创建一个名为Person的复杂对象,表示一个人的信息,包括姓名、年龄和地址。这个对象还具有一些方法来获取和设置这些属性:

class Person:def __init__(self, name, age, address):self.name = nameself.age = ageself.address = addressdef get_name(self):return self.namedef set_name(self, name):self.name = namedef get_age(self):return self.agedef set_age(self, age):if age >= 0:self.age = ageelse:print("年龄不能为负数")def get_address(self):return self.addressdef set_address(self, address):self.address = addressdef display_info(self):print(f"姓名: {self.name}")print(f"年龄: {self.age}")print(f"地址: {self.address}")# 创建一个Person对象
person1 = Person("Alice", 30, "123 Main St")# 获取属性值
print("姓名:", person1.get_name())
print("年龄:", person1.get_age())
print("地址:", person1.get_address())# 设置属性值
person1.set_name("Bob")
person1.set_age(25)
person1.set_address("456 Elm St")# 显示信息
print("\n修改后的信息:")
person1.display_info()

在这个示例中,我们创建了一个名为Person的类,它具有属性(nameageaddress)和方法(get_nameset_name等)。我们可以创建Person对象,访问和修改对象的属性,并使用display_info方法来显示对象的信息。

这是一个相对简单的示例,但它展示了如何创建一个包含属性和方法的复杂对象。在实际应用中,你可以创建更复杂的对象,模拟现实世界中的各种实体和关系。这有助于将代码组织得更好,使其更易维护和重用。

学习面向对象编程的基本概念和如何创建自定义类和对象是编写复杂程序的重要一步。类和对象允许你更好地组织和抽象代码,以便更容易维护和扩展。

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

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

相关文章

【Linux】Centos7 shell实现MySQL5.7 tar 一键安装

🦄 个人主页——🎐个人主页 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!&…

数据可视化新秀 DataEase 可否替代 Tableau?

每年数以千计的企业在数据可视化工具中选择 Tableau,但是你知道还有一款强大的工具DataEase,可能会成为你的更佳选择吗?下面是 Tableau 与 DataEase 的功能对比: 1 功能对比 Tableau DataEase 安装包支持平台 Windows MacOS Li…

3D虚拟情景实训教学系统在陪同口译课堂中的应用

一、虚拟情景实训教学系统的作用 1. 高度仿真的场景:虚拟情景实训教学系统可以模拟各种真实的口译场景,如商务谈判、会议讨论、文化交流等,让学生身临其境地感受口译工作的实际需求。 2. 丰富的实践机会:虚拟情景实训教学系统提…

数据结构线性表——带头双向循环链表

前言:小伙伴们好久不见啦,上篇文章我们一起学习了数据结构线性表其一的单链表,了解了单链表的不少好处,但是不可能有完美的数据结构,就算是单链表,也会有很多缺点。 那么今天这篇文章,我们就来…

【debug】解决Kali虚拟机开机黑屏,左上角光标一直闪动无法开机问题

做网络攻防实验时,突然Kali无法打开,遇到这个问题。。。。。。 遇到的问题 突然kali虚拟机变成如下黑屏,无法开机,左上角光标闪动,重启无效。 解决办法 在上图界面,按Ctrl F3(不同电脑快捷键…

CSS 的 link 标签放在 head 标签之间的作用

当我们在开发网页时&#xff0c;经常会遇到关于CSS文件引入位置的讨论。有些人喜欢将CSS文件的链接放在HTML文件的底部&#xff0c;而另一些人则认为最好将CSS链接放在<head>标签之间。那么&#xff0c;究竟应该将CSS的link标签放在head标签之间的原因是什么呢&#xff1…

vue-组件注册及使用

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容-组件注册及使用 目录 1、组件的注册及使用 2、组件常用属性 2.1、directive 2.2、computed 2.…

2023-11-rust-struct

struct 类似 schema。 ts的interface 和type struct MyStruct {width: i32,height: i32, } 创建实例 let eg1 MyStruct {width: 23,height: 22,}; struct 可以有自己的方法&#xff0c;并且默认第一个参数是该实例 impl MyStruct {fn can_hold(&self, instance: &…

ssh开启,centOS7

1、先确定虚拟机是否装了openssh-server&#xff0c;执行 yum list installed |grep openssh-server 查看是否安装 [rootlocalhost ~]# yum list installed |grep openssh-server Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast openssh-serve…

算法通关村第十五关白银挑战——海量数据场景下的热门算法题

大家好&#xff0c;我是怒码少年小码。 最近超级忙&#xff0c;很多实验报告&#xff0c;已经四五天没搞了&#xff0c;但是我还是回来了&#xff01; 海量数据场景下的热门算法题 本篇的题目不要求写代码&#xff0c;面试的时候能很清楚的说出思路就可以了。 1. 从40个亿中…

RESTful API概述以及如何使用它构建 web 应用程序

REST&#xff08;Representational State Transfer&#xff09;是一种设计风格和架构原则&#xff0c;它是一种为 Web 应用程序提供简化和标准化的 API 的方式。RESTful API&#xff08;RESTful Web Services&#xff09;是符合 REST 架构风格的网络应用程序 API&#xff0c;它…

SpringBoot学习笔记-项目初始化

笔记内容转载自 AcWing 的 SpringBoot 框架课讲义&#xff0c;课程链接&#xff1a;AcWing SpringBoot 框架课。 CONTENTS 1. 概念与项目介绍2. 创建SpringBoot项目后端3. 前后端不分离开发方式4. 前后端分离开发方式5. 创建Vue项目前端6. 前后端通信 1. 概念与项目介绍 本次开…

RSA加密、解密、签名、验签(验证签名)RSA算法原理

一、加密的原因 1.加密&#xff1a;是为了防止信息泄露&#xff1b; 2.签名&#xff1a;签名为了防止信息被篡改&#xff0c;保证数据完整性和发送方角色的可靠性和不可依赖性。 二、RSA加密简介 RSA加密是一种非对称加密。可在不直接传递密钥的情况下&#xff0c;完成解密&…

如何解决Windows电脑 Create folder error,Access is denied.

如何解决 Create folder error, Error: mkdir C:\Program Files\nodejs\21.1.0/: Access is denied. Waring: Name : http://npm.taobao.org/mirrors/node/v21.1.0/win-x64/node.exe Code : -2 Error : Create folder error, Error: mkdir C:\Program Files\nodejs\\21.1.0/…

【Vue原理解析】之模版编译

引言 Vue.js是一款流行的JavaScript框架&#xff0c;它采用了基于组件的开发模式&#xff0c;使得前端开发更加简单和高效。而Vue的核心功能之一就是模版解析&#xff0c;它负责将Vue组件中的模版代码转化为可执行的JavaScript代码。本文将深入探讨Vue模版解析的作用、核心源码…

【文末送书】如何在时间循环里最优决策?

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

OpenAI调查ChatGPT故障;向量搜索的优势与局限

&#x1f989; AI新闻 &#x1f680; OpenAI调查ChatGPT故障&#xff0c;发布新AI产品GPTs和GPT-4 Turbo 摘要&#xff1a;OpenAI的ChatGPT和其他服务出现故障&#xff0c;经过调查后发现是由于DDoS攻击导致的异常流量模式。OpenAI在首届开发者大会上发布了新的AI产品GPTs&am…

CSS3 2D、3D转换

一、CSS3 2D转换&#xff1a; CSS3转换可以对元素进行移动、缩放、转动、拉长或拉伸。 2D变换的方法&#xff1a;translate()、rolate()、scale()、skew()、matrix()。 <style> div { width:200px; height:100px; background-color:red; /* Rotate div */ tran…

Linux命令(120)之tcpdump

linux命令之tcpdump 1.tcpdump介绍 linux命令tcpdump是用来将网络中传送的数据包完全截获下来以进行相关分析&#xff0c;常用的分析工具是wireshark 2.tcpdump用法 tcpdump [参数] tcpdump参数 参数说明-i指定端口-n指定协议-t在输出的每一行不打印时间戳-s抓取数据包时&a…

酷柚易汛ERP - 发货地址管理操作指南

1、应用场景 对发货地址进行管理&#xff0c;使用【物流服务】时的自动获取发货地址。 2、主要操作 打开【资料】-【发货地址管理】新增发货地址。 可以对进行地址设置及管理&#xff0c;点击【新增】可添加新的发货地址信息地址简称方便使用者在选择发货地址时&#xff0c;…