python基础知识07-函数作用域和匿名函数
1.匿名函数
list(filter(lamda a:a>3,[1,2,3,4,5]))
一般和过滤器一起使用
2.函数的作用域
a = 123
def test():
a = 666
a = a + 1
print(a)
test()
print(a)
1.函数外面访问不到函数里面的变量
2.函数里面可以访问外面的变量
3.函数里面不能修改外面的变量,针对不可变类型而言的,对于列表等可变类型可以修改.
4.函数里面和外面变量名相同,但不是同一个.
5.函数内部用 global a 申明a为全局变量,可对外面的变量进行修改.
6.nonlocal 局部变量申明,可以使用外层非全局变量
def Q():
b = 123
def W():
nonlocal b
b = b + 1
print('进入到W函数')
W()
Q()
3.闭包
函数里面定义的函数在外面去调用.不严谨的说法.ps我个人认为就是在外层函数内部定义一个函数,内层函数的名被赋予了一个内层函数地址,最后返回内层函数名其实就是内层函数地址.这样就建立了内层函数在外层访问的联系.原本外层函数不能访问内层函数,但是通过地址传递出去内层函数,便可以访问.
def A():
print('我是A函数')
def B():
print('我是B函数')
return B
调用B,A()()
4.递归和回调函数
递归:
def fun(x):
if x == 1:
return 1
return fun(x-1)*x
print(fun(5))
返回120,要改变一个值,防止死循环.
回调函数
def fun2(f,c): f是函数名.c是判断参数
if c ==True:
f()
else:
print('不调用')
def play():
print('玩泥巴')
fun2(play,True) 这样就调用了外部的play函数,关键在于传一个函数名参数.
5.linux命令
alias 命令别名:
alias a = 'cd pyme'
a 直接执行 cd pyme
取消别名:unalias a
关机后自动取消
history查看历史
python基础知识07-函数作用域和匿名函数的更多相关文章
- Python基础知识总结笔记(四)函数
Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...
- day16_函数作用域_匿名函数_函数式编程_map_reduce_filter_(部分)内置函数
20180729 补充部分代码 20180727 上传代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # ***************** ...
- python基础(补充):lambda匿名函数,用了的,都说好!
lambda函数又叫做"匿名函数".当你完成一件小工作时,直接使用该函数可以让你的工作得心应手. lambda函数介绍 在Python中,定义函数使用的是def关键字,但是通过la ...
- python学习-day15:函数作用域、匿名函数、函数式编程、map、filter、reduce函数、内置函数r
---恢复内容开始--- 一.全局变量与局部变量 在子程序中定义的变量称为局部变量, 在程序的一开始定义的变量称为全局变量. 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序.当全局变量与 ...
- python学习-day16:函数作用域、匿名函数、函数式编程、map、filter、reduce函数、内置函数r
一.作用域 作用域在定义函数时就已经固定住了,不会随着调用位置的改变而改变 二.匿名函数 lambda:正常和其他函数进行配合使用.正常无需把匿名函数赋值给一个变量. f=lambda x:x*x p ...
- python基础——10(三元运算符、匿名函数)
一.三元运算符 本质是if--else--的语法糖 前提:简化if--else--的结构,且两个分支有且只有一条语句 案例: a = 20 b = 30 res = a if a > b els ...
- Python函数作用域和匿名函数
匿名函数的定义 全局变量和局部变量的概念 global(全局变量)和 nonlocal(局部变量) 闭包.递归.回调 匿名函数 匿名函数 lambda 语法规则:lambda 参数 : 表达式 ...
- python_07 函数作用域、匿名函数
函数的作用域:无论在哪个地方调用函数,函数运行过程中的作用域只跟定义的时候有关,跟在哪个地方调用无关. name='alex' def foo(): name = 'linhaifeng' def b ...
- 潭州课堂25班:Ph201805201 第九课 函数作用域和匿名函数 (课堂笔记)
匿名函数: lambda obj:str(obj).isdigit 语法规则: lambda 参数:表达式 列: ma1 = map( lambda obj:'binbin','abcdef' ) ...
随机推荐
- Hello world——程序员的第一篇代码
Hello world 是和A+B问题并驾齐驱的一道题,也是当世的经典题之一. 题目: 输出“Hello world” 样例输入 样例输出 Hello world Hello world ...
- Phoenix在2345公司的实践(转)
本文介绍Phoenix在2345公司的实践,主要是实时查询平台的背景.难点.Phoenix解决的问题.Phoenix-Sql的优化以及Phoenix与实时数仓的融合思路.具体内容如下: 实时数据查询时 ...
- CIFAR10自定义网络实战
目录 CIFAR10 MyDenseLayer CIFAR10 MyDenseLayer import os import tensorflow as tf from tensorflow.keras ...
- Luogu P2114[NOI2014]起床困难综合症 【贪心/位运算】By cellur925
题目传送门 所以NOI的题现在简单惹? 30分做法:枚举开始的权值,n²过掉. 100分做法:竟然是贪心qwq.因为我们的计算背景是二进制下,所以我们贪心地想让每一位都是1.我们现在需要解决的问题,就 ...
- USACO Training3.1联系【排序终极题目】By cellur925
题目传送门 这题我们很容易想到直接枚举即可.算法本身并没有什么难度但是细节超多!于是这题整整卡了一天....... (不,还是我太弱了.) 期间还暴露出一些平时没有特别注意的问题,这次一起解决. 开始 ...
- jQuery中的.html()和.text()及.val()区别
https://www.cnblogs.com/zhang-xun/p/6766264.html
- [WOJ1583]向右看齐
题目链接: WOJ1583 题目分析: 大水题--我就来水个题解 倒序扫,单调栈维护单减序列,每个对象的答案是栈里它下面那个元素 代码: #include<bits/stdc++.h> # ...
- D Tree HDU - 4812
https://vjudge.net/problem/HDU-4812 点分就没一道不卡常的? 卡常记录: 1.求逆元忘开longlong 2.把solve中分离各个子树的方法,由“一开始全部加入,处 ...
- JavaScript-获取当前元素的相关元素或节点--方法总结
1.获取当前元素中的第一个子节点 document.getElementById("uu").firstChild 2.获取当前元素中的第一个子元素 document.getEle ...
- SPRING-BOOT系列之简介
来自:51CTO的学习视频,本博客作为一个知识点记录以及代码验证 spring boot 特点 1. 为基于spring的开发提供更快的入门体验 2. 创建可以独立运行的spring应用 3. 直接嵌 ...