Python 簡明教程 --- 18,Python 面向對象

微信公衆號:碼農充電站prohtml

我的主頁:https://codeshellme.github.iopython

代碼能借用就借用。git

—— Tom Duffgithub

目錄shell

在這裏插入圖片描述

編程可分爲面向過程編程面向對象編程,它們是兩種不一樣的編程方式,固然背後的思惟方式也是不一樣的。面向過程編程是一種傳統的編程方式,面向對象編程是一個更高級的編程方式。編程

1,面向過程編程

面向過程編程(POP)的重點在於過程二字。設計模式

面向過程比較好理解,就是按照人們一般的思惟方式,在作一件事情的時候,將這件事情劃分爲多個步驟,一步一步來作。微信

面向過程編程,就是在進行一個項目時,將這個項目分爲多個小的步驟,一個步驟就是一個過程,將這些過程所有組織起來,就造成了完整的項目。數據結構

C 語言是典型的面向過程編程語言編程語言

好比,咱們能夠將我要去北京這件事情分爲如下四個步驟:

  1. 去高鐵站
  2. 購買高鐵票
  3. 持票上高鐵
  4. 坐高鐵到北京

這裏的每一個步驟至關於一個過程,咱們將這些過程封裝成函數,而後,從前到後將這些函數組織起來,就完成了我要去北京這件事情。

咱們將這個過程用簡單的代碼實現以下,將該代碼保存在to_beijing.py 文件中:

#! /usr/bin/env python3

def to_high_station():
    print('我到了高鐵站')

def buy_rail_tickets():
    print('我買了高鐵票')

def geton_high_rail():
    print('我坐上了高鐵')

def to_beijing():
    print('我到了北京')

if __name__ == '__main__':

    to_high_station()
    buy_rail_tickets()
    geton_high_rail()
    to_beijing()

在控制檯執行命令,以下:

$ python3 to_beijing.py 
我到了高鐵站
我買了高鐵票
我坐上了高鐵
我到了北京

2,面向對象編程

面向對象思想

面向對象編程(OOP)的重點在與對象二字,主要的編程思想是圍繞對象展開。

在思考一個項目的時候,將項目中的重要點/關鍵點都設計成一個個的,每一個類承擔着不一樣的工做,不一樣的功能被概括到不一樣的類中。而後,由類產生出對象,這些對象之間的相互做用,最終組成了一個完整的項目。

類與對象

面向對象編程中的兩個很是重要概念是對象也是代碼複用的一種機制。

前面咱們講到過,函數模塊都是代碼複用的機制。

表明一類有着相同特徵事物,是一個抽象的概念。由同一個類產生的對象,有着相同的特性。好比人類都會行走,會使用工具,須要呼吸和喝水,這都是人類的共性。

對象產生,是一個類的實例,建立對象的過程,叫作類的實例化。對象是具體的,而不是抽象的。同一類的不一樣對象,也有不一樣的屬性。好比人類,有不一樣的性別,姓名和年齡等,這都是人類的不一樣屬性。

設計模式是對面向對象編程的寶貴經驗的概括總結,讓咱們能夠更方便的運用面向對象的思想來進行編程工做。

面嚮對象語言

Java 語言是徹底的面向對象編程語言,由於全部的步驟都在中進行。

C++ 語言是半面向對象編程語言,它被稱爲帶類的 C,即支持面向過程編程,又支持面向對象編程。

Python 語言是一門腳本語言,以簡單優雅爲設計理念,便可以面向過程編程,也能夠面向對象編程,但不像C++ 語言那樣有太多的複雜枯燥的概念,Python 語言更注重實用性。

面向對象三大特徵

封裝繼承多態是面向對象的三大特徵,這三種特徵都是面向對象編程語言自身提供的機制,可讓咱們更方便的進行面向對象程序設計:

  • 封裝:讓用戶能夠訪問須要的方法,禁止訪問沒必要要的方法,屏蔽了類內部的複雜性。
  • 繼承:使得子類能夠繼承父類的代碼,也是一種代碼複用手段,加強了類與類之間的邏輯結果關係。同時,繼承也是多態的必要條件。
  • 多態:一個事物(對象)能夠表現多種形態,多態是面向對象編程中,一個很是強大的特性。

面向對象編程

咱們仍然以我要去北京這件事來講明,用面向對象編程是如何實現的。

面向對象編程的重點在於類的設計,如何將一個大的項目,拆分爲不一樣的,必要的類。類的功能是單一的,而不是將不一樣的功能糅雜到一個類中。

首先,咱們須要設計出一個,好比類名叫做SomeOne,這個至少須要有四項功能:

  • 去高鐵站
  • 購買高鐵票
  • 持票上高鐵
  • 坐高鐵到北京

咱們須要將這四項功能,寫成四個方法,放在類SomeOne 中,代碼以下:

#! /usr/bin/env python3

# 定義一個類
class SomeOne:

    # 構造函數
    def __init__(self, name):
        self.name = name

    def to_high_station(self):
        print('%s 到了高鐵站' % self.name)

    def buy_rail_tickets(self):
        print('%s 買了高鐵票' % self.name)

    def geton_high_rail(self):
        print('%s 坐上了高鐵' % self.name)

    def to_beijing(self):
        print('%s 到了北京' % self.name)

if __name__ == '__main__':

    # 建立一個類的對象
    i = SomeOne('小明')

    i.to_high_station()
    i.buy_rail_tickets()
    i.geton_high_rail()
    i.to_beijing()

將該代碼寫在文件SomeOne.py 中,在控制檯執行命令,以下:

$ python3 SomeOne.py 
小明 到了高鐵站
小明 買了高鐵票
小明 坐上了高鐵
小明 到了北京

在上面的代碼中,咱們定義了一個名叫SomeOne 的類,其中包含了咱們須要的四個方法,另外還有一個__init__ 的方法,這是類的構造函數(後續咱們會詳細講解)。

__main__ 代碼塊中,咱們建立了SomeOne 類的對象i,並調用了該對象的四個方法。

下一節,咱們來詳細介紹類與對象

(完。)


推薦閱讀:

Python 簡明教程 --- 13,Python 集合

Python 簡明教程 --- 14,Python 數據結構進階

Python 簡明教程 --- 15,Python 函數

Python 簡明教程 --- 16,Python 高階函數

Python 簡明教程 --- 17,Python 模塊與包


歡迎關注做者公衆號,獲取更多技術乾貨。

碼農充電站pro

相關文章
相關標籤/搜索