1.定义函数
def 函数名():
内容
def 函数名(形参1,形参2,...):
内容
*如果不主动调用函数,函数不会执行
2.函数的调用
函数名()
函数名(实参1,实参2,...)
3.函数里面注释
""" """
4.参数
形参:
(1)位置参数:形参和实参个数必须保持一致
def hh(name,age):
print name,age
hh(age = 12,name = 'hh')
(2)默认参数:形参和实参的个数可以不一致,可以改变
def mypow(x,y=2):
print pow(x,y)
mypow(7,2)
mypow(2)
当实参值只有一个时,默认为x的2次方,当实参为2个时,默认值无效!
(3)可变参数:形参个数不确定
*args :args是元组数据类型,名字可变,一般用args
def mysum(*args):
print args
sum = 0
for item in args:
sum += item
print sum
mysum(1,2,3,4)
*nums:解包 对列表,集合,元组解包只需要在变量名前加*
def mysum(*args):
print args
sum = 0
for item in args:
sum += item
print sum
nums = [1,2,3,4,5,6]
mysum(*nums)
(4)关键字参数:**kwargs :是一个字典可以传递任意多个key-value
def guan(**kwargs):
print kwargs
guan(name=['westos'], age=18, hobbies=['code', 'running'])
5.函数的返回值
函数运算的结果,还需要进一步操作时,用return返回值
如果没有返回值,默认为none
python可以间接返回多个值,形成元组
用一个参数接收,形成元组
两个参数接收,单个数据
一旦遇到return 函数执行结束
6.函数变量的作用域
(1)局部变量
在函数内定义的普通变量,只在函数内部作用,函数执行结束,变量自动删除
a = 1
def han():
#global a
a = 5
print 'in',a,id(a)
han()
print 'out',a,id(a)
print a,id(a)(2)全局变量
global a 声明全局变量
s = random.random() 随机产生0~1之间的数
7.函数的装饰器
(1)定义:把一个函数作为参数,返回一个替代版的函数
(2)作用:在不改变原函数的基础上,给函数增加功能
练习1:
def fun1(): 函数1
print 'have a nice day!'
def fun2(): 函数2
print 'happy'
def outer(fun): 函数装饰器
def inner():
print '******'
fun1()
print '******'
return inner
fun = outer(fun1)
fun()
练习2:
def say(age):
print 'man is %d years old'%age
def outer(fun):
def inner(age):
if age < 0:
age = 0
fun(age)
return inner
say = outer(say)
say(-10)
例子3:语法糖
def desc(fun):
def inner():
print 'happy'
fun()
print '***'
return inner@desc #需要给哪个函数加装饰器,就给那个函数前加此语句
def login():
print 'login'login()