Python函数学习 您所在的位置:网站首页 free函数的作用 Python函数学习

Python函数学习

2022-12-23 01:54| 来源: 网络整理| 查看: 265

一.作用域 1.局部作用域

如果一个变量定义的位置在一个函数里面,那其是局部作用域 请添加图片描述

2.全局作用域

1.任何函数的外部去定义一个变量,其作用域为全局的 2.函数中,局部变量会覆盖全局变量 请添加图片描述 PS:两个x同名,不同样,因为不同的作用域 可用id函数查身份 请添加图片描述

二.global语句

可以进行修改全局变量在函数中 请添加图片描述 (但并不推荐,容易出现bug)

三.嵌套函数

函数中嵌套函数 请添加图片描述 第一种无法提出funB,第二种通过函数内部提出funB

四.nonlocal语句

在内部函数去修改外部函数的变量 请添加图片描述

五.LEGB规则

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.如何给装饰器传递参数 请添加图片描述 请添加图片描述

八.lambda表达式(匿名函数)

(一行流代码)(可以放在列表中) (通常只能使用在简单的函数中) 请添加图片描述

九.生成器

1.每调用一次,提供一个数据,并记住当时的状态(特殊迭代器) 请添加图片描述 (无法使用下标索引) 请添加图片描述 2.生成器表达式 请添加图片描述 和列表推导式的不同在于一个一次只一个,一个是一次全部

十.递归

1.函数调用函数或者调用函数本身(可能会失控) 请添加图片描述 2.通过判断语句,将递归在失控下拉回 请添加图片描述 (必须有结束条件) 3.递归和迭代的区别 请添加图片描述 4.斐波那契数列 请添加图片描述 5.递归具有效率问题(过程相当耗费资源)

十一.汉诺塔

1.递归的应用 将n层从最右挪到最左

十二.函数文档,类型注释,内省 1.函数文档(函数的说明书)

请添加图片描述 请添加图片描述 可用help查看编写的函数文档内容

2.类型注释

请添加图片描述 str是给人看的,所以times(5,5)是可以的 可用s:str=“FishC”进行默认参数 也可用列表list,字典dict 请添加图片描述

3.内省

1.程序与运行的时候能够进行自我检测的机制(也可叫自省) name函数的名字 annotation查看函数的类型注释 doc查看函数文档 请添加图片描述

十三.高阶函数

1.当一个函数接收另一个函数为参数时,其被称为高阶函数 2.functools reduce函数 第一个参数指定一个函数(必须指定两个参数) 第二个参数时可迭代对象(将元素依次传递第一个参数指定的函数中,最红返回累积结果) (可用lambda函数) 请添加图片描述 3.偏函数 对指定函数二次包装,将现有函数部分参数进行预先绑定,从而得到新函数(偏函数) 请添加图片描述 4.@wraps装饰器 在真正要调用的函数的顶上描写,将真正函数作为参数 原来的是 请添加图片描述 采用@wraps装饰器后 请添加图片描述 请添加图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有