第十二篇:编程范式

编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式或风格,对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式。

面向过程编程

面向过程编程依赖procedures(过程),一个procedure包含一组要被进行计算的步骤,面向过程又被称为top-down languages, 就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 。基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。

面向过程:核心是过程,工厂生产一样的流水线处理方式,机械式地处理,根据业务逻辑从上到下写垒代码,关注的是解决问题的过程。
优点:复杂问题流程化,进而简单化
缺点:可扩展性差

people1 = {'name':'bjo','age':19,'sex':''}
print(people1['sex'])
print('{} 在跳跃'.format(people1['name']))
print('{} 正在跑步'.format(people1['name']))
people2 = {'name':'anjo','age':18,'sex':''}
print(people2['sex'])
print('{} 在跳跃'.format(people2['name']))
print('{} 正在跑步'.format(people2['name']))

函数式编程

在维基百科中给出了详细的定义,函数式编程(英语:functional programming)或称函数程序设计,又称泛函编程,是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是λ演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。数学上的函数是从定义域集合A到值域集合B的映射关系。在编程上则是有返回值的子程序属于函数式编程。

def jump(name):
    return '{} 在跳跃'.format(name)
def runing(name):
    return '{} 正在跑步'.format(people1['name'])
people1 = {'name':'bjo','age':19,'sex':''}
print(people1['sex'])
print(jump(people1['name']))
print(runing(people1['name']))
people2 = {'name':'anjo','age':18,'sex':''}
print(people2['sex'])
print(jump(people2['name']))
print(runing(people2['name']))

面向对象编程

面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念的程序编程范型,同时也是一种程序开发的方法。它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象。

面向对象:核心就是对象,对象就是特征与属性的结合体,关注的是谁能解决问题,然后把问题交给谁,谁即对象,而不关注如何解决问题过程。
优点:可扩展性强
缺点:编程复杂度高
应该用场景:用户需求经常变化的场景 游戏、互联网应用、企业内部应用等

 面向对象编程示例

def Human(name,age,sex):
    def init(name,age, sex):
        sch = {
            'name': name,
            'age': age,
            'sex': sex,
            'jump': jump,
            'running': running,
        }
        return sch
    def jump(people):
        print('%s 在跳跃' %people['name'])
    def running(people):
        print('%s在跑步' %(people['name']))
    return  init(name,age,sex)

people1=Human('bjo',19,'')
print(people1)
print(people1['name'])

people1['jump'](people1)

people2=Human('anjo',18,'')

print(people2)
print(people2['name'],people2['age'],people2['sex'])
people2['running'](people2)

print(id(people1['jump']))
print(id(people2['jump']))

猜你喜欢

转载自www.cnblogs.com/us-wjz/p/10982546.html