在學習函式之前,一直遵循:面向過程程式設計,即:根據業務邏輯從上到下實現功能,其往往用一長段**來實現指定功能,開發過程中最常見的操作就是貼上複製,也就是將之前實現的**塊複製到現需功能處,如下:
while true:
if cpu利用率 > 90%:
#傳送郵件提醒
連線郵箱伺服器
傳送郵件
關閉連線
if 硬碟使用空間 > 90%:
#傳送郵件提醒
連線郵箱伺服器
傳送郵件
關閉連線
if 記憶體占用 > 80%:
#傳送郵件提醒
連線郵箱伺服器
傳送郵件
關閉連線
定眼一看上述**,if條件語句下的內容可以被提取出來公用,如下:
def 傳送郵件(內容)
#傳送郵件提醒
連線郵箱伺服器
傳送郵件
關閉連線
while true:
if cpu利用率 > 90%:
傳送郵件('cpu報警')
if 硬碟使用空間 > 90%:
傳送郵件('硬碟報警')
if 記憶體占用 > 80%:
對於上述的兩種實現方式,第二次必然比第一次的重用性和可讀性要好,其實這就是函式式程式設計和面向過程程式設計的區別:
函式式程式設計最重要的是增強**的重用性和可讀性
def函式的定義主要有如下要點:函式名(引數):
...
函式體
...
返回值
1、返回值
函式是乙個功能塊,該功能到底執行成功與否,需要通過返回值來告知呼叫者。
以上要點中,比較重要有引數和返回值:
def函式的有三中不同的引數:傳送簡訊():
傳送簡訊的**...
if傳送成功:
return
true
else
:
return
false
while
true:
#每次執行傳送簡訊函式,都會將返回值自動賦值給result
#之後,可以根據result來寫日誌,或重發等操作
result =傳送簡訊()
if result ==false:
記錄日誌,簡訊傳送失敗...
1、普通引數
#2、預設函式######### 定義函式 #########
#name 叫做函式func的形式引數,簡稱:形參
deffunc(name):
name
########## 執行函式 #########
#'wupeiqi' 叫做函式func的實際引數,簡稱:實參
func('
wupeiqi
')
def func(name, age = 18):3、動態函式"%s:%s
" %(name,age)
#指定引數
func('
wupeiqi
', 19)
#使用預設引數
func('
alex
')
注:預設引數需要放在引數列表最後
def func(*args):args
#執行方式一
func(11,33,4,4454,5)
#執行方式二
li = [11,2,2,3,3,4,54]
func(*li)
def func(**kwargs):args
#執行方式一
func(name='
wupeiqi
',age=18)
#執行方式二
li =
func(**li)
def func(*args, **kwargs):擴充套件:傳送郵件例項args
print kwargs
importview codesmtplib
from email.mime.text import
mimetext
from email.utils import
formataddr
msg = mimetext('
郵件內容
', '
plain
', '
utf-8
')
msg[
'from
'] = formataddr(["
武沛齊",'
'])
msg['to
'] = formataddr(["
走人",'
'])
msg[
'subject
'] = "主題"
server = smtplib.smtp("
smtp.126.com
", 25)
server.login(
", "
郵箱密碼
")
server.sendmail(
', ['
',], msg.as_string())
server.quit()
python中split 函式講解
本文講述的是string.split s sep maxsplit 針對string型別的split 函式。它主要是切割字串,結果返回由字串元素組成的乙個列表,具體怎麼使用看下面的 1.無引數的情況 a my name is zhangkang b my nname nis nzhangkang c...
Python 函式中(詳細講解)
四 命名空間 五 遞迴函式 deffn deffn1 print hello world return fn1 r fn r 結果為 hello worlddeffn deffn1 print hello world return fn1 r fn print r 結果為 hello world n...
08Python學習函式講解
定義 函式是指將一組語句的集合通過乙個名字 函式名 封裝起來,要想執行這個函式,只需呼叫其函式名即可 特性 減少重複 使程式變的可擴充套件 使程式變得易維護 deffuncname v 定義函式名,形參.print v funcname hello 呼叫函式 hello正常情況下,給函式傳引數要按順...