零基础学python之高级编程(1)---面向对象编程及其类的创建
面向对象编程及其类的创建
文章目录
- 面向对象编程及其类的创建
- 前言
- 一、面向过程编程和面向对象编程的概念
- 1.面向过程编程(Procedural Programming)
- 2.面向对象编程(Object-Oriented Programming,OOP)
- 二、面向对象编程基础
- 1.初识类(class)和对象
- 调用方法
- 2.类中的两种特殊方法(init,str)
- 1.init方法
- 2.str方法
- 3.类名称空间与对象的名称空间(命名空间)
- 总结
前言
大家好,从今天开始我们一起来进入python中的高级编程篇,我将会讲解比基础篇更加难的面向对象编程,并发编程,进程线程等等一些列的语法及其使用.
今天我们来讲解一下什么是面向对象编程,应该怎么创建一个类及其实例化一个对象或者说属性呢?
一、面向过程编程和面向对象编程的概念
1.面向过程编程(Procedural Programming)
面向过程编程: 核心是过程.就像工厂中的的流水线,按照指定步骤和流程,通过程序划分成一系列的函数,每个函数负责完成一个任务,最终通过函数的调用实现功能,适合那种一旦完成不需要变动的环境,用函数对数据进行操作。
面向过程编程的优点是简单直观,便于理解和掌握。
2.面向对象编程(Object-Oriented Programming,OOP)
面向对象编程: 核心是对象.世间万物都是对象,我们可以随意的创建我们想要的对象,对象是由数据和操作数据的方法封装起来形成一个对象,每个对象都有自己的属性和功能.实现对象交互产生结果.
面向对象编程的三要素: 1,封装(Encapsulation) 2继承(Inheritance) 3多态(Polymorphism)
面向对象编程的优点是可以提高代码的可重用性、灵活性和扩展性
以上就是我们常说的两种编程范式.
二、面向对象编程基础
1.初识类(class)和对象
类:—>就是具有相同特征的一类事物.
对象/实例:—>就是具体的一个事物
实例化:—>将一个类到实例的一个过程.
在python中,我们可以这样理解,用变量表示特征,用函数表示技能,具有相同特征和技能的一类事物就是类,对象就是这一类事物中的具体的一个.
创建一个类语法:
class Person:#定义一个person的类role = '人类'#属性def Walk(self):#定义Person类中的walk方法print('人在走')
在面向对象编程中,类中的变量通常被称为属性,函数通常被称为方法。
我们在定义一个类中类名的首字母大写
调用方法
class Person:#定义一个person的类role = '人类'#属性def Walk(self):#定义Person类中的walk方法print('人在走')
print(Person.role)
print(Person.Walk)
运行结果:

这里面我们print()输出类中的属性,会打印出属性的结果,而打印类中的方法,会显示类中方法的的内存地址.
现在,我们要调用一个类,我们要先将类实例化,然后才能调用.
语法:
实例化:--->类名()用一个变量进行接收类的实例化,然后调用当中的方法class Person:#定义一个person的类role = '人类'#属性def Walk(self):#定义Person类中的walk方法print('人在走')p = Person()#实例化p.Walk()#调用people.Walk方法
运行结果:

这样我们就调用了类中的walk方法.
注意:
调用类中方法需要先将类实例化,然后再进行调用其中方法
2.类中的两种特殊方法(init,str)
1.init方法
1.__init__方法是一个特殊的方法,用于在创建对象时进行初始化操作。它在对象被创建时自动调用,并可以用来设置对象的属性值或执行其他必要的操作。__init__方法可以接受其他参数,可以用来初始化对象的属性。
以下代码演示init的使用方法:
class Person:def __init__(self, name, age): # 传入两个参数self.name = name # 初始化name属性self.age = age # 初始化age属性def speak (self):print(f'你好,我叫{self.name},我今年{self.age}岁')p = Person('仁泽',20)#实例化Person类并且传入参数对象
p.speak()#调用类中speak方法
运行结果:
你好,我叫仁泽,我今年20岁
2.str方法
2.__str__方法也是一个特殊的方法,用于返回对象的字符串表示。它在调用内置的str()函数时自动调用,并且应该返回一个可读性好的字符串,用于描述对象的信息。通常情况下,__str__方法会返回一些有关对象内部状态的信息,以便进行调试和输出。
class Person:def __init__(self, name, age): # 传入两个参数self.name = name # 初始化name属性self.age = age # 初始化age属性def speak (self):print(f'你好,我叫{self.name},我今年{self.age}岁')def __str__(self):return '你好'p = Person('仁泽',20)#实例化Person类并且传入参数对象
# p.speak()#调用类中speak方法
print(p)
运行结果:

我们使用print()打印实例化的类名,会自动输出出str方法中的返回值
3.类名称空间与对象的名称空间(命名空间)
创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字.这些名字称为类的属性.
创建一个对象会创建一个对象的名称空间,用来存储对象的名字.
在对象名.属性名会从对象自己的名称空间找属性,找不到则去类中找,类也找不到就去父类,最后找不到抛出异常.
总结
今天我们学习了面向过程编程与面向对象编程的区别,也学习了python类中的两种特殊方法__init____str__ 的使用方法,下次我们来学习面向对象编程的三个特性.
讲的不好,多多见谅,我们下次再见!
更多优质文章点这里
相关文章:
零基础学python之高级编程(1)---面向对象编程及其类的创建
面向对象编程及其类的创建 文章目录 面向对象编程及其类的创建前言一、面向过程编程和面向对象编程的概念1.面向过程编程(Procedural Programming)2.面向对象编程(Object-Oriented Programming,OOP) 二、面向对象编程基础1.初识类(class)和对象调用方法 2.类中的两种…...
[C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改
问题描述 WPF中DataGrid的选中行或选中者单元格,在焦点失去后,颜色会很淡,很不明显,不容易区分。 解决方法 在失去焦点的情况下,如何设置行或单元格与选中的时候颜色一样? <DataGrid.Resources>&…...
单片机学习笔记---串口通信(1)
目录 通信的基本概念 通信的方式 1.按照数据传送的方式,可分为串行通信和并行通信。 1.1串行通信 1.2并行通信 2.按照通信的数据同步方式,又可以分为异步通信和同步通信。 2.1 异步通信 2.2同步通信 3.按照数据的传输方向,又可以分为…...
熔断机制解析:如何用Hystrix保障微服务的稳定性
微服务与系统的弹性设计 大家好,我是小黑,在讲Hystrix之前,咱们得先聊聊微服务架构。想象一下,你把一个大型应用拆成一堆小应用,每个都负责一部分功能,这就是微服务。这样做的好处是显而易见的,更新快,容错性强,每个服务可以独立部署,挺美的对吧?但是,问题也随之而…...
第三节 zookeeper基础应用与实战2
目录 1. Watch事件监听 1.1 一次性监听方式:Watcher 1.2 Curator事件监听机制 2. 事务&异步操作演示 2.1 事务演示 2.2 异步操作 3. Zookeeper权限控制 3.1 zk权限控制介绍 3.2 Scheme 权限模式 3.3 ID 授权对象 3.4 Permission权限类型 3.5 在控制台…...
C# Socket通信从入门到精通(21)——Tcp客户端判断与服务器断开连接的三种方法以及C#代码实现
前言 我们开发的tcp客户端程序在连接服务器以后,经常会遇到服务器已经关闭但是作为客户端的我们不知道,这时候应该应该有一个机制我们可以实时监测客户端和服务器已经断开连接,如果已经断开了连接,我们应该及时报警提示用户客户端和服务器已经断开连接,本文介绍三种可以监…...
vulnhub-->hacksudo-Thor靶机详细思路
目录 1. IP探测2.端口服务扫描3.网站漏洞扫描4.目录扫描5.信息分析6.破壳漏洞(Shellshock)nmap---漏洞检测CVE-2014-6271 7.nc反弹8.提权9.service提权 1. IP探测 ┌──(root㉿kali)-[~] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:10:3c:9b, IPv4: 19…...
Java外卖小程序管理系统
技术架构: springboot ssm mysql redis 有需要该项目的小伙伴可以私信我你的Q。 功能描述: 商品管理:新增商品、所有商品 菜单管理:菜单管理、菜单分类 订单管理:订单总览(包括未付款、已付款、已…...
挖掘嵌入式系统在物联网和智能设备中的应用潜力
1. 物联网的发展和嵌入式系统 介绍物联网的定义和特点,以及其在各个领域中的应用。探讨物联网对嵌入式系统的需求,包括低功耗、小型化、实时性等特性,以及对嵌入式系统的数据处理和通信能力的要求。 2. 嵌入式系统在智能设备中的应用 分析…...
用docker 配置scala spark环境
要使用Docker配置Scala和Spark环境,您可以按照以下步骤进行操作。以下是一个基本的示例,您可能需要根据您的具体需求进行调整。 安装Docker: 在您的系统上安装Docker。您可以从Docker官方网站下载并安装适用于您操作系统的版本。 创建Dockerfile: 在您的…...
医疗处方架构设计和实现的实战经验总结
医疗处方是医生开具给患者的药物治疗建议。在现代医疗系统中,设计和实现一个高效而可靠的医疗处方架构至关重要。本文将介绍医疗处方架构的设计原则和关键组件,以及如何实现一个可扩展和安全的处方管理系统。 内容: 1. 引言 - 医疗处方的…...
专业140+总分410+华南理工大学811信号与系统考研经验华工电子信息与通信,真题,大纲,参考书。
23考研已经落幕,我也成功的上岸华工,回首这一年多的历程,也是有一些经验想和大家分享一下。 首先说一下个人情况,本科211,初试成绩400分。专业课140。 整体时间安排 对于考研,很重要的一环就是时间安排&…...
软件测试学习笔记-测试用例的编写
7中测试分类 按照阶段可划分单元测试、集成测试、系统测试、验收测试。代码可见度划分黑盒测试、灰盒测试、白盒测试 单元测试:针对源代码的测试 集成测试:针对接口进行测试 系统测试:针对功能和非功能的测试 验收测试:公测、内测…...
『运维备忘录』之 Kubernetes(K8S) 常用命令速查
一、简介 kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写,是一个开源的,用于管理云平台中多个主机上的容器化的应用。kubernetes是基于容器技术的分布式架构解决方案,具有完备的集群管理能力&a…...
Android SDK 上传 Maven 喂奶级教程
最近领导给安排了个任务,让我把我们现有的一个 SDK 上传到 Maven 上去,方便客户直接用 gradle 依赖,不再需要拷贝 jar 和 so 了,此前我也看过一些相关的文章我想问题也不大,觉得工作量也就一两天的事情,主要…...
R语言绘图教程 | 双侧条形图绘制教程
写在前面 双侧条形图在我们的文章中也是比较常见的,那么这样的图形是如何绘制的呢? 以及它使用的数据类型是什么呢? 这些都是我们在绘制图形前需要掌握的,至少我们知道绘图的数据集如何准备,这样才踏出第一步。 今天的教程,我们会从数据的准备,以及数据如何整理,以及…...
ubuntu篇---ubuntu安装python3.9
ubuntu篇—ubuntu安装python3.9 在ubuntu上安装Python有两种方法:在线安装和源码编译安装。 方法1:使用apt在线安装 1.更新软件包列表并安装必备组件: $ sudo apt update $ sudo apt install software-properties-common2.将Deadsnakes PPA添加到系统…...
git初始化一个远程空仓库
目录 1. 仅做简单初始化2. 推送现有的非仓库文件夹3. 推送现有的仓库 git初始化一个远程空仓库主要有以下三种途径: 仅做简单初始化,例如添加 README.md 和 .gitignore。将现有的文件夹(非仓库)推送到远程仓库。将现有的仓库推送…...
装箱问题+宠物小精灵之收服+数字组合——01背包
一、装箱问题 (裸题) 有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积(正整数)。 要求 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入 第一行是一个整数 V (0 < V ≤ 20000)&…...
记一次页面接口502问题:“502 Bad Gateway”
接收别人的项目进行迭代,项目部署到服务器上之后,有一个接口数据刷不出来,一直502 后来联想到网关的问题,想通过设置白名单的方式解决,设置之后依旧不行。 查看nginx日志发现报错: *169 connect() failed …...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...
ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
UE5 音效系统
一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…...
JUC并发编程(二)Monitor/自旋/轻量级/锁膨胀/wait/notify/锁消除
目录 一 基础 1 概念 2 卖票问题 3 转账问题 二 锁机制与优化策略 0 Monitor 1 轻量级锁 2 锁膨胀 3 自旋 4 偏向锁 5 锁消除 6 wait /notify 7 sleep与wait的对比 8 join原理 一 基础 1 概念 临界区 一段代码块内如果存在对共享资源的多线程读写操作…...
