文末有彩蛋!!!!
文末有彩蛋!!!!
文末有彩蛋!!!!
重要的事 情说三遍!
编程范式是计算机语言编程的一种需要编程者遵循的基本风格与规范模式。如果说每一个编程者进行的编程是在创造一个依托于计算机而存在的虚拟世界,那么编程范式就是这个虚拟世界所采用的世界观与创造世界的方法论。
常见的编程范式: 面向过程编程
与 面向对象编程
编程范型提供了程序员对程序执行的看法:
在不同的编程语言中,提倡的是不同的编程范式。在 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)。
面向对象编程包含通过类、实例、属性和方法等核心概念:
下面的代码演示了以上 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()
面向对象最重要的概念就是类和实例,要牢记类是抽象的模板,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法。
同样是上面的数学计算的例子,如何利用 面向对象编程 的编程范式来实现:
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 小时
编程思想的不同
面向过程:是一种以过程为中心的编程思想。
面向对象:是一类以对象为核心的编程思想。
特点不同
面向过程:主要分析出解决问题所需要的步骤,用函数把这些步骤一步一步实现,使用的时候一个一个依次调用即可。
面向对象:主要找出问题中的共性问题,作为对象进行操作。
话说现如今,那个年轻人不是在用命去打拼呢?遍地戾气如斯,与君更勉之。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。