微信公眾號搜索【程序媛小莊】,關(guān)注半路出家的程序媛如何靠python開發(fā)養(yǎng)家糊口~
前言
很多計(jì)算機(jī)小白在了解編程語言的基本語法和使用之后,面對一個(gè)需求時(shí)會覺得無從下手,沒有思路,本文介紹編程范式就是為了解決小白們的沒有思路的問題。
什么是編程范式
官方來說,編程范式是某種編程語言的編程風(fēng)格或者說是編程方式。
通俗的說,編程范式就是寫代碼的套路,如果把編程的過程比喻為做飯,那編程范式指的就是各大菜系 - 魯、川、粵、蘇、閩、浙、湘、徽等,而在Python編程中常見的流派有面向過程和面向?qū)ο蟆?/p>
需要強(qiáng)調(diào)的是,每個(gè)菜系都有自己的特點(diǎn),并沒有高低之分,只有做飯的廚師手藝好不好,在編程中也是一樣的,每種編程范式在不同的場景下都有優(yōu)劣,并不能分誰好誰壞。
編程范式的種類
面向過程
面向過程的編程思想,核心就是過程二字。過程指的就是做事的步驟,先做什么,在做什么,比如做飯一樣,要先洗米,然后放入電飯鍋,最后按下煮飯?;诿嫦蜻^程的編程思想就像在設(shè)計(jì)一條流水線,任何程序的執(zhí)行都是按照順序執(zhí)行的,因此無論采用什么語言、采用什么編程范式,最終的執(zhí)行都是按照過程的。
收到一個(gè)需求之后,先不要著急寫代碼,可以按照面向過程的思想將需求分解成很多個(gè)小步驟去實(shí)現(xiàn)然后依次調(diào)用即可,比如說,炒一盤番茄炒蛋,可以分為切番茄、打雞蛋、炒菜三部分。
基于所學(xué)的知識,可以使用函數(shù)實(shí)現(xiàn)每個(gè)步驟:
# 第一步,將每個(gè)小步驟封裝成不同的函數(shù)
def cut_tomato():
print('切番茄...')
def eggs():
print('打雞蛋...')
def make():
print('炒菜')
# 第二步,根據(jù)步驟依次調(diào)用
cut_tomato() # 首先切番茄
eggs() # 然后打雞蛋
make() # 最后炒菜
基于面向過程的編程思想既有優(yōu)點(diǎn)也有缺點(diǎn)。
優(yōu)點(diǎn):可以將復(fù)雜的問題分解為簡單的步驟,進(jìn)行流程化。
缺點(diǎn):程序的可擴(kuò)展性差,因?yàn)橐惶撞襟E只能用來解決一個(gè)問題,比如上述做番茄炒蛋的步驟無法做火鍋,就算可以做,也要改掉很多代碼,就很有可能出現(xiàn)連鎖反應(yīng),一處改處處錯(cuò)。
因此面向過程的思想一般用于那些實(shí)現(xiàn)功能后基本不改代碼的場景,比如說寫一個(gè)實(shí)現(xiàn)某種功能的腳本,用面向過程實(shí)現(xiàn)是非常合適的。如果需要處理的任務(wù)非常復(fù)雜,并且需要不斷地迭代更新和維護(hù),建議使用下述面向?qū)ο蟮木幊趟枷搿?/p>
面向?qū)ο?/h3>
在Python中一切皆對象,關(guān)于面向?qū)ο蟮木幊趟枷霑诿嫦驅(qū)ο蟛糠诌M(jìn)行非常詳細(xì)的介紹,這里先簡單介紹一下:
面向?qū)ο蟮木幊趟枷牒诵氖菍ο?,可以將對象理解為對?shù)據(jù)和函數(shù)功能的整合,每種對象都有自己的數(shù)據(jù)和功能。在面向?qū)ο笾袝榇蠹以敿?xì)的介紹python中的類和對象。
還請大家耐心等待,小莊會急速更細(xì)滴~