您好,登錄后才能下訂單哦!
編程語言中,編程方式主要有兩種:
1.面向過程編程
2.面向對象編程
面向過程編程,核心是"過程",關注的是解決問題的步驟,即先做什么再做什么。面向過程的編程就像一個流水線,是一種機械式的思維。若程序一開始是要著手解決一個大問題,面向過程的編程思維會把一個大問題分解為很多個小問題,這些小問題還可以繼續分解,直到小問題足夠簡單可以在一個小步驟中解決。
復雜問題流程化,進而簡單化
"下面是一個面向過程的例子,寫一個數據備份程序,主要分為三步:
1.本地數據打包
2.上傳到云服務器
3.測試備份文件的可用性"
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: vita
import os
def data_backup(folder):
print("找到備份目錄: %s" %folder)
print('正在備份......')
zip_file='/tmp/backup20181103.zip'
print('備份成功,備份文件為: %s' %zip_file)
return zip_file
def cloud_upload(file):
print("\nconnecting cloud storage center...")
print("cloud storage connected.")
print("upload file...%s...to cloud..." %file)
link='http://www.xxx.com/bak/%s' %os.path.basename(file)
print('close connection.....')
return link
def data_backup_test(link):
print("\n下載文件: %s , 驗證文件是否無損" %link)
def main():
#步驟一:本地數據打包
zip_file = data_backup("c:\\users\\alex\歐美100G高清無碼")
#步驟二:上傳至云服務器
link=cloud_upload(zip_file)
#步驟三:測試備份文件的可用性
data_backup_test(link)
if __name__ == '__main__':
main()
E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py
找到備份目錄: c:\users\alex\歐美100G高清無碼
正在備份......
備份成功,備份文件為: /tmp/backup20181103.zip
connecting cloud storage center...
cloud storage connected.
upload file.../tmp/backup20181103.zip...to cloud...
close connection.....
下載文件: http://www.xxx.com/bak/backup20181103.zip , 驗證文件是否無損
Process finished with exit code 0
可擴展性差。
一套流程主要用于解決一個問題,如果其中一個方法修改了,那其他組件也要跟著作相應的修改
"比如我們修改步驟二函數cloud_upload的邏輯,那么步驟三函數也要修改,牽一發動全身"
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: vita
import os
def data_backup(folder):
print("找到備份目錄: %s" %folder)
print('正在備份......')
zip_file='/tmp/backup20181103.zip'
print('備份成功,備份文件為: %s' %zip_file)
return zip_file
def cloud_upload(file): #這里修改為:加上異常處理,在出現異常的情況下,沒有link返回
try:
print("\nconnecting cloud storage center...")
print("cloud storage connected.")
print("upload file...%s...to cloud..." % file)
link = 'http://www.xxx.com/bak/%s' % os.path.basename(file)
return link
except Exception:
print('upload error')
finally:
print('close connection.....')
def data_backup_test(link): #那么這里也要跟著修改:加上對參數link的判斷
if link:
print("\n下載文件: %s , 驗證文件是否無損" %link)
else:
print('\n鏈接不存在')
def main():
#步驟一:本地數據打包
zip_file = data_backup("c:\\users\\alex\歐美100G高清無碼")
#步驟二:上傳至云服務器
link=cloud_upload(zip_file)
#步驟三:測試備份文件的可用性
data_backup_test(link)
if __name__ == '__main__':
main()
E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py
找到備份目錄: c:\users\alex\歐美100G高清無碼
正在備份......
備份成功,備份文件為: /tmp/backup20181103.zip
connecting cloud storage center...
cloud storage connected.
upload file.../tmp/backup20181103.zip...to cloud...
close connection.....
下載文件: http://www.xxx.com/bak/backup20181103.zip , 驗證文件是否無損
Process finished with exit code 0
面向過程主要用于功能一旦實現后就很少需要改變的場景
如:linux中的shell腳本,就是按步驟,按順序依次執行
著名的有linux內核,Git,及Apache HTTP Server。
但如果處理復雜的任務,且需要不斷迭代和維護的,就需要使用面向對象了。
面向對象編程,對象是特征與技能的集合體。
世界上所有事物都可以說是一個對象,例如人,特征是有鼻子眼睛四肢,技能是行走,吃飯,學習。
解決了面向過程的可擴展性問題。
編程復雜度較高
如果shell腳本中使用面向對象編程,反而會使代碼變得更加復雜
應用于需求經常變化的軟件中,互聯網應用,游戲等,都是基于面向對象的設計。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。