赞
踩
(1)函数概述:
项目中,某些功能会反复的使用。将功能封装成函数,要使用功能的时候直接调用函数
①优点:
1.简化代码结构,增加代码的复用度
2.如果想修改某些功能或者调试某个BUG,修改对应的函数即可
②定义:
def 函数名(参数列表):
语句
return 表达式
函数名遵循标识符规则
任何传入的参数和变量必须放在圆括号之间,用逗号分隔。函数内容以冒号开始,并且缩进
return:结束函数,返回信息 不写return默认返回None
③函数的调用: 函数名(参数列表)
本质:实参给形参赋值的过程
④最简单的函数:
无参无返回值的函数
(2)函数的参数
①定义
实参:调用函数时给函数传递的数据,本质是值
形参:本质是变量
参数必须按顺序传递,个数相对应
② 传递
值传递:传递的不可变类型 string,tuple,number
def func(num):
num = 1
var = 0
func(var)
print(var)
引用传递:传递的可变类型 (实际上是对地址值的传递) list,dict,set
def func(list):
list[0]=0
list=[1,2,3]
func(list)
print(list)
③关键字参数
允许函数调用时参数的顺序与定义时不一致,传参时指明
使用关键字参数
def func(name,age):
pass
func(age="",name="")
④默认参数
调用函数时如果没有传递函数,则使用默认参数.最好将默认参数放到最后,定义函数时指明
def func(name,age=10):
pass
⑤不定长参数
能处理比定义时更多的参数
加了*的变量 存放所有未命名的变量参数,如果在函数调用时没有指定参数,它就是一个空元组
def func(name,*arr):
for x in arr:
pass
pass
加了**的变量 代表键值对的参数字典,
def func(**arr)
pass
func(a="",b=""....) #必须传入关键字参数
(3)函数的返回值
函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。
禁止函数修改列表:可向函数传递列表的副本而不是原件 function_name( list_name[:] )
例:求两数之和,将结果返回给函数的调用者
def sum(num1,num2)
return num1+num2
(4)匿名函数
不使用def这样的语句定义函数,使用lambda来创建匿名函数
特点:
1.lambda只是一个表达式,函数体比def简单,主体是表达式,而不是代码块
2.只能封装简单的逻辑
3.有自己的命名空间,且不能访问自由参数列之外的或全局命名空间的参数
格式:
lambda 参数1,参数2,......,参数n:expression
例: sum = lambda sum1,sum2:num1+num2
print(sum(1,1))
(5)装饰器
需求:打印s1之前打印*** def func(): print(" s1 ") def outer(): print("***") func1() 例1: def outer(func): def inner(): print("***") func() return inner #返回inner函数 f=outer(func) 例2: def say(age): print(age) say(-1) def outer(func): def inner(age): if age<0: age=0 func(age) return inner say=outer(say) say(-1)
@outer
def func
使用@符号将装饰器应用到函数
通用装饰器:
def outer(func):
def inner(*args,**kwargs):
#添加修饰的功能
func(*args,**kwargs)
return inner
(7)偏函数
基础例: print(int(“1010”,base=2)) 字符串按base=2进制输出
把一个参数固定住,形成一个新的函数
import functools
int2 =functools.partial(int,base=2)
等价于
def int2(str,base=2):
return int(str,base)
(8)变量的作用域
作用域:变量可以使用的范围
①局部作用域
②全局作用域
③内建作用域
(9)导入函数
导入特定的函数:
from module_name import function_name
from module_name import function_0,function_1,function_2
使用as给函数指定别名
from module_name import function_name as fn
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。