python面向对象:什么是面向对象程序设计

编程范式

  编程即写程序or代码,具体是指程序猿用特定的语法+数据结构+算法编写代码,目的是用来告诉计算机如何执行任务。

  如果把编程的过程比喻为练习武功,那么编程范式指的就是武林中的各种流派,而在编程的世界里最常见的两大流派就是:面向过程和面向对象

  面向过程和面向对象在不同的场景下都各有优劣,谁好谁坏不能一概而论,下面就让我们来详细了解它们。

面向过程的程序设计

概念:

核心是“过程”二字,“过程”指的是解决问题的步骤,即先干什么再干什么。。。。,基于面向过程设计程序就好比设计一条流水线,是一种机械式的思维方式。若程序一开始是要着手解决一个大的问题,面向过程的基本设计思路就是把这个大的问题分解成很多个小问题或子过程,这些子过程在执行的过程中继续分解,直到小问题足够简单到可以在一个小步骤范围内解决。

优点是:

复杂的问题流程化,进而简单化(一个复杂的问题,分成一个个小的步骤去实现,实现小的步骤将会非常简单)

举个典型的面向过程的例子,写一个注册程序,分三步,输入用户名,密码,验证,写入数据库。

import json
import re
def interactive():
    name=input(‘>>: ‘).strip()
    pwd=input(‘>>: ‘).strip()

    return {
        ‘name‘:name,
        ‘pwd‘:pwd,

    }

def check(user_info):
    is_valid=True

    if len(user_info[‘name‘]) == 0:
        print(‘用户名不能为空‘)
        is_valid=False

    if len(user_info[‘pwd‘]) < 6:
        print(‘密码不能少于6位‘)
        is_valid=False

    return {
        ‘is_valid‘:is_valid,
        ‘user_info‘:user_info
    }

def register(check_info):
    if check_info[‘is_valid‘]:
        with open(‘db.json‘,‘w‘,encoding=‘utf-8‘) as f:
            json.dump(check_info[‘user_info‘],f)

def main():
    user_info=interactive()

    check_info=check(user_info)

    register(check_info)

if __name__ == ‘__main__‘:
    main()

  

缺点是:

  一套流水线或者流程就是用来解决一个问题,比如生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,与其相关的组件都需要修改,牵一发而动全身,扩展性极差。

比如我们要加一个邮箱验证功能,那么和邮箱相关的代码都要改,代码如下:

import json
import re
def interactive():
    name=input(‘>>: ‘).strip()
    pwd=input(‘>>: ‘).strip()
    email=input(‘>> ‘).strip()
    return {
        ‘name‘:name,
        ‘pwd‘:pwd,
        ‘email‘:email
    }

def check(user_info):
    is_valid=True

    if len(user_info[‘name‘]) == 0:
        print(‘用户名不能为空‘)
        is_valid=False

    if len(user_info[‘pwd‘]) < 6:
        print(‘密码不能少于6位‘)
        is_valid=False

    if not re.search(r‘@.*?\.com$‘,user_info[‘email‘]):
        print(‘邮箱格式不合法‘)
        is_valid=False

    return {
        ‘is_valid‘:is_valid,
        ‘user_info‘:user_info
    }

def register(check_info):
    if check_info[‘is_valid‘]:
        with open(‘db.json‘,‘w‘,encoding=‘utf-8‘) as f:
            json.dump(check_info[‘user_info‘],f)

def main():
    user_info=interactive()

    check_info=check(user_info)

    register(check_info)

if __name__ == ‘__main__‘:
    main()

  

应用场景:

  面向过程的程序设计思想一般用于那些功能一旦实现之后就很少需要改变的场景, 如果你只是写一些简单的脚本,去做一些一次性任务,用面向过程的方式是极好的,著名的例子有Linux內核,git,以及Apache HTTP Server等。但如果你要处理的任务是复杂的,且需要不断迭代和维护 的, 那还是用面向对象最方便了。

面向对象的程序设计

概念:

核心是“对象”二字,对象是特征与技能的结合体。

优点是:

可扩展性强

 缺点是:

编程复杂度高

应用场景:用户需求经常变化,互联网应用,游戏,企业内部应用

原文地址:https://www.cnblogs.com/mike-liu/p/9125966.html

时间: 2024-08-30 13:58:35

python面向对象:什么是面向对象程序设计的相关文章

python 模块和包 &nbsp; 面向对象

1.模块 何时使用模块: 1.代码越来越多的时候,放入一个py文件中,无法维护 拆分放入多个py文件,好处: 同一个名字的变量名互不影响 a.py                b.py x=5                 x='abc' def f1(x):             def f2(x): print(x)               print(x) 2.引入模块及第三方模块 如如引用第三方模块,import math math.cos /sin   math.ceil /

python学习笔记(七):面向对象编程、类

一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一个功能.举个例子,你要做饭,可以用电磁炉,也可以用煤气灶.不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路,两种最重要的编程范式分别是面向过程编程和面向对象编程. 提到面向对象,就不得不提到另一种编程思想,面向过程:什么是面向过程呢,面向过程的思想是把一个项目.一件事情按照一定的顺

【python学习-5】面向对象的python

python是一种面向对象的编程语言,虽然与C++一样,支持面向过程的程序设计,python完全可以使用函数.模块等方式来完成工作,但是当使用python编写一个较大的项目时,则应该考虑使用面向对象的方法,以便于更好地对项目进行管理. 1.python的类特性: ① 类的抽象性:类是对具有共同方法和属性的一类对象的描述. ② 类的封装性:类将属性和方法封装,外部是不可见的,只有通过类提供的接口才能与属于类的的实例对象进行信息交换. ③ 类的继承性:类可以由已有的类派生,派生出来的类拥有父类方法和

【python】对象和面向对象

类的定义 python支持多重继承,在类名后面的小括号中,可以列出多个类名,以逗号分割. __init__方法在类的实例创建后被立即调用,注意与c++中构造函数不一样,因为对象在调用__init__时已经被构造出来,__init__方法不返回值,__init__方法不是必须要定义的. 每个类方法的第一个参数,包括__init__,都是指向类的当前实例的引用.按照习惯这个参数被称为self.在__init__方法中,self指向新创建的对象,在其他的类方法中,它指向方法被调用的类的实例.尽管当定义

python笔记 - day7-1 之面向对象编程

python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: sele是什么? self是一个python自动会给传值得参数: 哪个对象执行方法,self就是哪个对象: 构造方法: 类中有一个特殊的方法,__init__,类()自动执行: 面向对象,三大特性: 封装,继承,多态:  

python学习笔记12-python面向对象

python学习笔记12-python面向对象 python一切皆对象 一.基本概念 1.面向对象和面向过程 面向对象编程:C++,Java,Python 面向过程编程:函数式编程,C程序等 2.类和对象 类:是对事物的抽象,比如:人类,球类 对象:是类的一个实例,比如:足球,篮球,对象就是对类的实例化 属性:五官,眼,鼻子,理解为一个变量,静态属性 方法:对人来说,吃穿住行,理解为一个函数,动态方法 实例说明:球类可以对球的特征和行为进行抽象,然后可以实例化一个真实的球实体出来 3.为什么要使

Python(六)面向对象

本章内容: 创建类和对象 面向对象三大特性(封装.继承.多态) 类的成员(字段.方法.属性) 类成员的修饰符(公有.私有) 类的特殊成员 创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用. 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象则是根据模板创建的实例,通过实例对象可以执行类中的函数 class是关键字,表示类 创建对象,类名称后加括号即可 # 创建类 class

Python, Java, C++, Perl 面向对象思想比较

面对对象语言的设计哲学通常分为以下两种. 第一种思路是基类的作者定下一系列的规则,规定使用该基类的人(派生类的作者)可以干什么事,不能干什么事. C++,和 Java 就是这一阵营的主要代表.比如说,C++中类定义中的 public, protected, private, virtual 等关键字就是 所谓的规则,规定了类的用户可以使用的成员,必须继承接口,或者实现等等. 这些规则强制类的用户调用或使用基类作者所允许的成员. 这样的好处在于,当错误使用发生的时候,编译器会发出牢骚,进而阻止错误

十三、Python高级功能之面向对象编程

Python高级功能之面向对象编程(类和对象) 一.类和对象: 面向过程和面向对象的编程 面向过程的编程:函数式编程,C程序等 面向对象的编程:C++,Java,Python等 类和对象:是面向对象中的两个重要概念 类:是对事物的抽象,比如:汽车模型 对象:是类的一个实例,比如:QQ轿车.大客车 范例说明: 汽车模型可以对汽车的特征和行为进行抽象,然后可以实例话为一台真实的汽车实体出来 二.Python类定义 Python类的定义: 使用class关键字定义一个类,并且类名的首字母要大写: 当程

Python数据结构与算法--面向对象

前面已经讲过,Python是一种面向对象的编程语言. 面向对象编程语言中最重要的特征是允许程序员创建类建立数据模型来解决问题. 我们之前利用抽象数据类型提供的逻辑来描述数据对象 (它的状态) 和功能 (它的方法). 通过构建类来实现抽象数据类型, 一个程序员可以发挥抽象处理的优势,同时提供详细的现实信息来解决问题.当我们想实现一个抽象数据类型的时候,我们将构建一个新的类. 本文地址:http://www.cnblogs.com/archimedes/p/python-datastruct-alg