1、简单语法函数
def
email(msg):
print msg
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
while
True
:
if
cpu利用率 >
90
%
:
email(
'CPU报警'
)
if
硬盘使用空间 >
90
%
:
email
(
'硬盘报警'
)
if
内存占用 >
80
%
:
扩展:发送邮件实例
import
smtplib
from
email.mime.text
import
MIMEText
from
email.utils
import
formataddr
msg
=
MIMEText(
'邮件内容'
,
'plain'
,
'utf-8'
)
msg[
'From'
]
=
formataddr([发件名
"
,
'kobe@126.com'
])
msg[
'To'
]
=
formataddr([
"收件名"
,
'jeams@qq.com'
])
msg[
'Subject'
]
=
"主题"
server
=
smtplib.SMTP(
"smtp.126.com"
,
25
)
server.login(
"kobe@126.com"
,
"邮箱密码"
)
server.sendmail(
'kobe@126.com'
, [
'jeams@qq.com'
,], msg.as_string())
server.quit()
2、函数返回值
def
email(msg):
print msg
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
return truewhile
True
:
if
cpu利用率 >
90
%
:
ret =
email(
'CPU报警'
)
if ret == True: print '邮件发送成功! '
else:
记录日志
返回值:
1、返回值没制定时,默认返回none.
2、返回值可以赋值给某个变量。
3、参数
形参,实参
def hanshu(xingcan):
xxxx
以上函数里的"xingcan"是形参,意旨调用函数时把参数传递进函数体内进行业务处理。
默认参数:
def hanshu(moren="默认值")
动态参数1:
def fun(*args):
print arg
以上函数是以动态参数为参数,当调用时:
fun(1) 结果是:(1,) 得到一个有一个元素的元组,*args表示可以传0个或多个参数,再以元组的形式在内部构造。
注意的是:
如果传的是一个元组或者列表,如:
li = [11,22,33,44,55]
则调用时需要如:fun(*li) ,便可得到 (11,22,33,44,55) ,
否则如fun(li),他结果是:
([11,22,33,44,55],) 他把你整个列表放在一个元组的元素里。
动态参数2:
def func(**kwargs):
print kwargs
连个*的参数,会在内部构架成一个字典。调用时是:func(k1=123,k2=234) 结果:{'k1':123,'k2':234}
而传递字典进去的话,可参考上面一个*的动参,假如有字典dict , 传进func函数里应是:func(**dict)
动态参数3:
结合以上两种动参,可得如:def func(*args,**kwargs)
该参数可接收单值,也可接受key=value的值,可参考s.format的源码。
def func(*args, **kwargs): print args print kwargs
>>> s = "i am {0} ,age is {1}"
>>> s.format(mykou,18)
>>> s.format('mykou',18)
'i am mykou ,age is 18'
>>> s = 'i am {name} ,age is {age}'
>>> s.format(name='mm',age=18)
'i am mm ,age is 18'
>>>
>>> help(s.format)
Help on built-in function format:
format(...)
S.format(*args, **kwargs) -> string
Return a formatted version of S, using substitutions from args and kwargs.
The substitutions are identified by braces ('{' and '}').
>>>
类似if else的三元算法
简单的函数也有这种简单写法: lambda
如:
def func(arg):
return arg+1
等价: func = lambda arg: arg+1 调用方式一样: func(arg)
它就是处理简单逻辑以及可以自动return.