irpas技术客

〖Python零基础入门篇?〗- 你了解编程范式吗?面向过程编程与面向对象编程的区别又是什么?_全栈哈士奇

未知 6155

万叶集🎉 隐约雷鸣,阴霾天空。 🎉🎉 但盼风雨来,能留你在此。 🎉

前言: ? 作者简介:渴望力量的哈士奇 ?,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS 赋能的博主 ? 🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆 📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


专栏系列(点击解锁)学习路线指引知识定位 🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。 语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。 自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。 自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。 数据库开发实战篇 更新中 爬虫入门与实战 更新中 数据分析篇 更新中 前端入门+flask 全栈篇 更新中 django+vue全栈篇 更新中 拓展-人工智能入门 更新中 网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者 网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。 vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。 shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结] WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器 测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得! 测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。 RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。 Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。 MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


文章目录 文末有彩蛋编程范式科普什么是编程范式? 面向过程编程面向对象编程基本概念 面向过程与面向对象的区别

文末有彩蛋

文末有彩蛋!!!! 文末有彩蛋!!!! 文末有彩蛋!!!! 重要的事 情说三遍

编程范式科普 什么是编程范式?

编程范式是计算机语言编程的一种需要编程者遵循的基本风格与规范模式。如果说每一个编程者进行的编程是在创造一个依托于计算机而存在的虚拟世界,那么编程范式就是这个虚拟世界所采用的世界观与创造世界的方法论。

常见的编程范式: 面向过程编程 与 面向对象编程

编程范型提供了程序员对程序执行的看法:

在面向过程编程中,程序员认为程序是一系列相互调用的过程或者函数;在面向对象编程中,程序员认为程序是一系列相互作用的对象;而在函数式编程中一个程序会被看作是一个无状态的函数计算的序列。

在不同的编程语言中,提倡的是不同的编程范式。在 C语言 中,使用的是面向过程编程范式,在 JAVA 语言中支持的是面向对象编程。而 Python 编程语言支持多种编程范式,所以在不同的应用场景下,程序员应选择合适的编程范式。

面向过程编程

面向过程编程是一种以过程为中心的编程思想,程序由一系列相互调用的过程组成。面向过程编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。

面向过程编程的核心是过程,就是分析出实现需求所需要的步骤,通过函数一步一步实现这些步骤,接着依次调用即可,再简单理解就是程序从上到下一步步执行,从头到尾的解决问题。

在这类问题中,解决问题的途径由多个步骤构成,使用函数描述每个步骤,因此使用函数对问题建模非常合适。

面向过程编程不足之处就是它不适合某些种类问题的解决,例如图形化编程,在图形化编程中,客观世界由具体的对象(窗口、标签、按钮等)组成,无法自然的将函数与图形对象一一对应,因此面向过程编程不适合用于图形化编程的领域。

举个数学计算的例子:

A地点 到 B地点之间的距离是 180KM ,开车走高速的速度是每小时 60KM ,计算所花费的时间。

面向过程实现的代码示例如下:

speed = 60.0 mileage = 180.0 time = mileage / speed print('共计需要花费的时间是:', time, '小时') # >>> 执行结果如下 # >>> 共计需要花费的时间是: 3.0 小时
面向对象编程

区别于 面向过程 编程 ,面向对象 编程是一种以对象为中心的编程思想,程序由一系列相互作用的对象组成。面向对象编程中,程序包含各种独立而又互相调用的对象,而在面向过程编程中,将程序看作一系列函数的集合。

面向对象编程是把构成事物的整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建对象的目的不是为了完成某一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。

面向对象程序设计方法是尽可能模拟人类的思维方式,使得软件的开发方法与过程尽可能接近人类认识世界、解决现实问题的方法和过程,也即使得描述问题的问题空间与问题的解决方案空间在结构上尽可能一致,把客观世界中的实体抽象为问题域中的对象。

Python中一切皆对象,比如之前学过的变量其实也都是对象,包括整形(int)、浮点型(float)、字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。

基本概念

面向对象编程包含通过类、实例、属性和方法等核心概念:

类: 可以理解是一个模板,通过它可以创建出无数个具体实例。 比如,定义一个Person类,通过它可以创建出无数个实例来代表各种不同特征的人。实例(对象): 类并不能直接使用,通过类创建出的实例(又称对象)才能使用,比如以上案例创建类对象Person。属性: 类中的所有变量称为属性。比如以上案例中类的变量有 姓名name、年龄age。方法,方法是指对象的行为。例如,存在一个对象 person,对象 person 的包括一个方法 show,通过调用方法 show 可以输出对象 person 的相关信息。

下面的代码演示了以上 4 个基本概念:

class Person: def __init__(self, name, age): self.name = name self.age = age def show(self): print('My name is %s, I am %d years old' % (self.name, self.age)) tom = Person('tom', 10) jerry = Person('jerry', 12) tom.show() jerry.show() 在第 1 行,定义了类 Person在第 2 行,定义了类 Person 的方法 init 方法 init 设置类 Person 的属性 name 和 age 在第 6 行,定义了类 Person 的方法 show, 方法 show 输出类 Person 的属性 name 和 age 在第 9 行,通过类 Person 创建一个实例 tom 实例 tom 的属性 name 是 tom,age 是 10 在第 10 行,通过类 Person 创建一个实例 jerry 实例 jerry 的属性 name 是 jerry,age 是 12 在第 11 行,调用类 tom 的方法 show在第 12 行,调用类 jerry 的方法 show

面向对象最重要的概念就是类和实例,要牢记类是抽象的模板,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法。

同样是上面的数学计算的例子,如何利用 面向对象编程 的编程范式来实现:

class Car(object): speed = 0 def take_time(self, mileage): time = mileage / self.speed print('共计需要花费的时间是:', time, '小时') car = Car() car.speed = 60.0 car.take_time(180.0) # >>> 执行结果如下 # >>> 共计需要花费的时间是: 3.0 小时 面向过程与面向对象的区别

编程思想的不同

面向过程:是一种以过程为中心的编程思想。

面向对象:是一类以对象为核心的编程思想。


特点不同

面向过程:主要分析出解决问题所需要的步骤,用函数把这些步骤一步一步实现,使用的时候一个一个依次调用即可。

面向对象:主要找出问题中的共性问题,作为对象进行操作。



话说现如今,那个年轻人不是在用命去打拼呢?遍地戾气如斯,与君更勉之。

为了碎银几两,为了三餐有汤。为了车呀为了房,你为的是哪位姑娘…


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Python零基础入门篇