首页 后端开发 Python教程 python是面向对象还是面向过程?

python是面向对象还是面向过程?

Sep 27, 2020 pm 04:14 PM
python

python是面向对象的,第一个公开发行版发行于1991年,Python语法简洁而清晰,具有丰富和强大的类库。

python是面向对象还是面向过程?

Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。Python语法简洁而清晰,具有丰富和强大的类库。

面向对象和面向过程的区别

一、面向过程

  1、面向过程:核心是过程二字,过程指的是解决问题的步骤,好比如设计一条流水线,是一种机械式的思维方式。

     就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 。基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。

  2、优缺点:

       优点:将复杂的问题流程化,进而简单化。

       缺点:扩展性差

  3、实例:面向过程式的登录注册程序  

View Code

  注意:一般认为, 如果你只是写一些简单的脚本,去做一些一次性任务,用面向过程的方式是极好的,但如果你要处理的任务是复杂的,且需要不断迭代和维护 的, 那还是用面向对象最方便。

 

二、面向对象

  1、面向对象:核心是对象二字,特征和技能的结合体。

  2、优缺点:

      优点:可扩展性高

      缺点:编程复杂度高

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

  4、关于面向对象的几个名词解释   

    类:一个类即是对一系列对象相似的特征和技能的结合体,如同一个模板。在类中定义了这些对象的都具备的属性,共同的方法。

    属性:人类包含很多特征,把这些特征用程序来描述的话,叫做属性,比如年龄、身高、性别、姓名等都叫做属性,一个类中,可以有多个属性。

    方法:人类不止有身高、年龄、性别这些属性,还能做好多事情,比如说话、走路、吃饭等,相比较于属性是名词,说话、走路是动词,这些动词用程序来描述就叫做方法。

    实例(对象):一个对象即是一个类的实例化后的实例,一个类必须经过实例化后方可在程序中调用,一个类可以实例化多个对象,每个对象亦可以有不同的属性,就像人类是指所有人,每个人是指具体的对象,人与人之前有共性,亦有不同。

    实例化:把一个类转变为一个对象的过程就叫实例化。

  5、简单实例

# 现实世界中的对象:
'''
对象1 
    特征
        职业:学生
        姓名:王二
        性别:男
        年龄:22
    技能
        学习
        打游戏
对象2
    特征 
        职业:学生
        姓名:张三
        性别:男
        年龄:20
    技能
        学习
        打游戏
        看书
对象3 
    特征 
        职业:学生
        姓名:婉婉
        性别:女
        年龄:18
    技能
        学习
        打游戏
        看书
现实中的类:
    特征:
        职业:学生
    技能:
        学习
        打游戏
        看书
在程序中:
'''
# 先有类
class School_learn:
    job = 'student'
    def study(self):
        print('study hard!')
    def play_game(self):
        print('play games as little as you can')
    def read(self):
        print('read books more and more')
# 再调用类产生对象
student1 = School_learn()
student2 = School_learn()
student3 = School_learn()
print(student1) # <__main__.School_learn object at 0x000002B70F8D7588> 对象
print(student2)
print(student3)

三、面向对象三大特性

    <1>封装(Encapsulation):在类中对数据的赋值、内部调用对外部用户来说是透明不可见的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法。

    <2>继承(Inheritance):一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承。

    <3>多态(Polymorphism):多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,指一个基类中派生出了不同的子类,且每个子类在继承了同样的方法名的同时又对父类的方法做了不同的实现,这就是同一种事物表现出的多种形态。

注意:这里只是简单说明下几大特性,后续我们会深入探讨的的。

更多相关免费学习推荐:python视频教程

以上是python是面向对象还是面向过程?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

Rimworld Odyssey温度指南和Gravtech
1 个月前 By Jack chen
Rimworld Odyssey如何钓鱼
1 个月前 By Jack chen
我可以有两个支付帐户吗?
1 个月前 By 下次还敢
初学者的Rimworld指南:奥德赛
1 个月前 By Jack chen
PHP变量范围解释了
3 周前 By 百草

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Laravel 教程
1603
29
PHP教程
1508
276
python shutil rmtree示例 python shutil rmtree示例 Aug 01, 2025 am 05:47 AM

shutil.rmtree()是Python中用于递归删除整个目录树的函数,能删除指定文件夹及其所有内容。1.基本用法:使用shutil.rmtree(path)删除目录,需处理FileNotFoundError、PermissionError等异常。2.实际应用:可一键清除包含子目录和文件的文件夹,如临时数据或缓存目录。3.注意事项:删除操作不可恢复;路径不存在时抛出FileNotFoundError;可能因权限或文件占用导致失败。4.可选参数:可通过ignore_errors=True忽略错

如何在Python中创建虚拟环境 如何在Python中创建虚拟环境 Aug 05, 2025 pm 01:05 PM

创建Python虚拟环境可使用venv模块,步骤为:1.进入项目目录执行python-mvenvenv创建环境;2.Mac/Linux用sourceenv/bin/activate、Windows用env\Scripts\activate激活;3.使用pipinstall安装包、pipfreeze>requirements.txt导出依赖;4.注意避免将虚拟环境提交到Git,并确认安装时处于正确环境。虚拟环境能隔离项目依赖防止冲突,尤其适合多项目开发,编辑器如PyCharm或VSCode也

如何在Python中执行SQL查询? 如何在Python中执行SQL查询? Aug 02, 2025 am 01:56 AM

安装对应数据库驱动;2.使用connect()连接数据库;3.创建cursor对象;4.用execute()或executemany()执行SQL并用参数化查询防注入;5.用fetchall()等获取结果;6.修改后需commit();7.最后关闭连接或使用上下文管理器自动处理;完整流程确保安全且高效执行SQL操作。

如何在Python中的多个过程之间共享数据? 如何在Python中的多个过程之间共享数据? Aug 02, 2025 pm 01:15 PM

使用multiprocessing.Queue可在多个进程间安全传递数据,适合多生产者和消费者的场景;2.使用multiprocessing.Pipe可实现两个进程间的双向高速通信,但仅限两点连接;3.使用Value和Array可在共享内存中存储简单数据类型,需配合Lock避免竞争条件;4.使用Manager可共享复杂数据结构如列表和字典,灵活性高但性能较低,适用于复杂共享状态的场景;应根据数据大小、性能需求和复杂度选择合适方法,Queue和Manager最适合初学者使用。

Python Boto3 S3上传示例 Python Boto3 S3上传示例 Aug 02, 2025 pm 01:08 PM

使用boto3上传文件到S3需先安装boto3并配置AWS凭证;2.通过boto3.client('s3')创建客户端并调用upload_file()方法上传本地文件;3.可指定s3_key作为目标路径,若未指定则使用本地文件名;4.应处理FileNotFoundError、NoCredentialsError和ClientError等异常;5.可通过ExtraArgs参数设置ACL、ContentType、StorageClass和Metadata;6.对于内存数据,可使用BytesIO创建字

如何使用Python中的列表实现堆栈数据结构? 如何使用Python中的列表实现堆栈数据结构? Aug 03, 2025 am 06:45 AM

PythonlistScani ImplementationAking append () Penouspop () Popopoperations.1.UseAppend () Two -Belief StotetopoftHestack.2.UseP OP () ToremoveAndreturnthetop element, EnsuringTocheckiftHestackisnotemptoavoidindexError.3.Pekattehatopelementwithstack [-1] on

Python中的弱参考是什么?您什么时候应该使用它? Python中的弱参考是什么?您什么时候应该使用它? Aug 01, 2025 am 06:19 AM

forefReferencEsexistToAllowRectingObjectingObjectSwithOutPreventingTheirgarBageCollection,帮助voidMemoryLeakSandCircularReferences.1.UseWeakKeyKeyDictionaryOrweakValuewDictionaryForcachesormappingSormpappingStoLetoBappateStolunusepobspateBappingsStolunedobectssbectsbecollected.useweakreference.2.useweakreferencesInChildTo to

Python时间表库示例 Python时间表库示例 Aug 04, 2025 am 10:33 AM

使用Pythonschedule库可轻松实现定时任务,首先通过pipinstallschedule安装库,接着导入schedule和time模块,定义需要定时执行的函数,然后使用schedule.every()设置时间间隔并绑定任务函数,最后通过while循环中调用schedule.run_pending()和time.sleep(1)持续运行任务;例如每10秒执行一次任务可写为schedule.every(10).seconds.do(job),支持按分钟、小时、天、周等周期调度,也可指定具体

See all articles