跟多數高階語言一樣,Python屬於多範程類型語言 所以這幾天會來學習python 最具代表性的函數 , 物件導向 , 基礎剖面導向
一開始學python應該有學到 def: 的用法 就是以函數來替代冗長的代碼 強調的是簡化代碼與輸入輸出特性 所以從函數開始已經有模組化(實體功能)的感覺了 不是只有單純的簡化
Ex:計算體積
def abc(l , w , h):
    co = l*w*h #計算長寬高
    return co
print(abc(25,25,256))
函數寫好了但沒有return(返回值)就相當於沒結尾,因為沒有告訴程式呼叫哪個內部資料 所以它就只會採用外部資料,但如果又沒資料或調用外部的程式,就會印出無效值None。
def abc(l, w ,h):
    co = l*w*h
    #return co
print(abc(25,25,256))
Out[ ]:None
返回值也可當一個值來看
def fxxking(x):
    return "shit" , -1
print(fxxking(123))
那如果只是當作調用名稱或過渡的函式 並不是當作有用函式的話 就可以使用此方法
def fxxking():
    pass  
既然要呼叫函數,可以運用各種方法呼叫(只要程式讀的到內容都可以)
import abc #引入剛剛的函式
print(abc(15,15,15))
閉包是由多(巢)函式衍生而來的
def db_sum(*add_all):  #s傳回加總
    def sum():
        s = 0
        for i in add_all:
            s += i
        return s
    return sum
sa = db_sum(1,2,3,4,5)
print(sa())
這裡會用到所謂的 萬用字元<*> 可省略傳回重複的值(後面會在談到)
#把多函數做成閉包
def count():
    l = []
    def a(j):
        def b():
            return j+j
        return b
    for i in range(0,5):
        l.append(a(i))  #傳回每次的值
    return l
Out[ ]:f1, f2, f3 , f4 , f5 = count()
        print(f1(),f2(),f3(),f4(),f5())
閉包傳回次數是固定的 因為函式不能有沒用到的狀況