跟多數高階語言一樣,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())
閉包傳回次數是固定的 因為函式不能有沒用到的狀況