如果一个变量定义的位置在一个函数里面,那其是局部作用域
1.任何函数的外部去定义一个变量,其作用域为全局的
2.函数中,局部变量会覆盖全局变量
PS:两个x同名,不同样,因为不同的作用域
可用id函数查身份
可以进行修改全局变量在函数中
(但并不推荐,容易出现bug)
函数中嵌套函数
第一种无法提出funB,第二种通过函数内部提出funB
在内部函数去修改外部函数的变量
L是Local局部作用域
E是Enclosed嵌套函数的外层函数作用域
G是Global是全局作用域
B是Build-In内置作用域
(从上到下优先性降低)
1.对于嵌套函数来说,外层函数的作用域会通过某种形式保留下来,并不会像局部作用域一样用完就消失
2.工厂函数(来料加工,批量生产)
PS:都是将其带入内置函数的值中,而move中的第二个,其前面x,y的值已经被第一次move改变,并非还是原来的0,0
(一个带记忆功能的函数)
1.把一个函数作为参数传递给另一个函数
2.传入函数的运行时间
3.同上,函数中套函数
4.装饰器是将下面的作为一个参数,弄进装饰器中(在不修改原来代码的情况下,实现这些功能)
5.多种装饰器用在同一个函数上
PS:这个时候先执行后面的装饰器
6.如何给装饰器传递参数
(一行流代码)(可以放在列表中)
(通常只能使用在简单的函数中)
1.每调用一次,提供一个数据,并记住当时的状态(特殊迭代器)
(无法使用下标索引)
2.生成器表达式
和列表推导式的不同在于一个一次只一个,一个是一次全部
1.函数调用函数或者调用函数本身(可能会失控)
2.通过判断语句,将递归在失控下拉回
(必须有结束条件)
3.递归和迭代的区别
4.斐波那契数列
5.递归具有效率问题(过程相当耗费资源)
1.递归的应用
将n层从最右挪到最左
可用help查看编写的函数文档内容
str是给人看的,所以times(5,5)是可以的
可用s:str=“FishC”进行默认参数
也可用列表list,字典dict
1.程序与运行的时候能够进行自我检测的机制(也可叫自省)
name函数的名字
annotation查看函数的类型注释
doc查看函数文档
1.当一个函数接收另一个函数为参数时,其被称为高阶函数
2.functools
reduce函数
第一个参数指定一个函数(必须指定两个参数)
第二个参数时可迭代对象(将元素依次传递第一个参数指定的函数中,最红返回累积结果)
(可用lambda函数)
3.偏函数
对指定函数二次包装,将现有函数部分参数进行预先绑定,从而得到新函数(偏函数)
4.@wraps装饰器
在真正要调用的函数的顶上描写,将真正函数作为参数
原来的是
采用@wraps装饰器后
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧