Python 學習筆記(二)

一、內容概要

  1. 函數式編程:注意不是“函數編程”,多了一個“式”;
  2. 模塊:如何使用模塊;
  3. 面向對象編程:面向對象的概念、屬性、方法、繼承、多態等;
  4. 定製類:利用 Python 的特殊方法定製類。

二、學習目標

  1. 掌握函數式編程;
  2. 掌握面向對象編程;
  3. 能夠編寫模塊化的程序。

三、函數式編程

  1. 什麼是函數式編程?

函數:function

函數式:functional ,一種編程範式,是一種抽象計算的編程模式。

函數式編程的特點:(1)把計算視爲函數而非指令;

                                 (2)純函數式編程:不需要變量,沒有副作用,測試簡單;

                                 (3)支持高階函數,代碼簡潔。

Python 支持的函數式編程:(1)不是純函數式編程:允許有變量;

                                             (2)支持高階函數:函數也可以作爲變量傳入;

                                             (3)支持閉包:有了閉包就能返回函數;

                                             (4)有限度地支持匿名函數。

     2. 高階函數

  • 變量可以指向函數 

例:>>> abs(-10)    ==> 10

       >>> f = abs  #變量 f 指向函數abs()

       >>> f(-10)   ===> 10   # 效果相同

  • 函數名其實就是指向函數的變量

例:>>> abs = len

       >>> abs (-10)   ===> 報錯

       >>> abs ( [ 1, 2, 3 ] )   ===>  3

  • 高階函數:能接收函數做參數的函數

              變量可以指向函數;

              函數的參數可以接收變量;

              一個函數可以接收另一個函數作爲參數;

              能接收函數做參數的函數就是高階函數。

 例1. 定義一個函數,接收 x, y, f 三個參數,其中 x, y 是數值,f 是函數。

         >>> def add (x, y, f) :

                       return f (x) + f (y)

         >>> add (-5, 9, abs)   ===> 14

例2. 利用 add(x, y, f) 函數,計算:

>>> import math

>>> def add(x, y, f):
              return f(x) + f(y)

>>> print add(25, 9, math.sqrt)

# 輸出結果

8.0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章