python全栈开发_day11_作用域,函数嵌套和闭包
一:作用域
1)什么是作用域
作用域是规定一个变量可以作用的范围,运行和销毁的范围
2)作用域的分类
1.内置作用域built_in:随着解释器的运行而产生,解释器运行的终止而销毁。
2.全局作用域global:随着文件的打开运行而产生,随着文件的运行的终止而销毁。
3.嵌套作用域enclosing:函数嵌套关系中,内部函数可以使用外部函数的变量。
4.局部作用域local::函数自身的变量,作用于函数内部,随着函数的使用产生,函数使用的结束而销毁。
3)嵌套作用域的运行
def a():
num=1
def b():
print(num)
return b() print(a()) #获得返回值:1 None
#函数的嵌套就是在函数中定义另一个函数,这个函数可以使用外置函数的变量,遵从嵌套作用域的运行关系。
二:闭包(重点重点重点)
1)什么是闭包
闭包实际上就是函数的嵌套,产生可以外部调用的内部函数。
2)闭包的运用
def a():
num=1
def b():
print(num)
return b c=a()
c() #这是最简单闭包,外部调用内部函数。
import requests def a(address):
def b():
print(requests.get(address).text)
return b baidu=a("https://www.baidu.com")
baidu() #如此定义一个函数关系,可以在后续的代码中更好更简单的获取网页数据
python全栈开发_day11_作用域,函数嵌套和闭包的更多相关文章
- python 全栈开发,Day11(函数名应用,闭包,装饰器初识,带参数以及带返回值的装饰器)
一.函数名应用 函数名是什么?函数名是函数的名字,本质:变量,特殊的变量. 函数名(),执行此函数. python 规范写法 1. #后面加一个空格,再写内容,就没有波浪线了. 2.一行代码写完,下面 ...
- python全栈开发 生成器 :生成器函数,推导式及生成器表达式
python 全栈开发 1.生成器函数 2.推导式 3.生成器表达式 一.生成器函数 1.生成器: 生成器的本质就是迭代器 (1)生成器的特点和迭代器一样.取值方式和迭代器一样(__next__(), ...
- python全栈开发之匿名函数和递归函数
python 匿名函数和递归函数 python全栈开发,匿名函数,递归函数 匿名函数 lambda函数也叫匿名函数,即函数没有具体的名称.是为了解决一些功能很简单需求而设计的一句话函数.如下: #这段 ...
- python 全栈开发,Day16(函数第一次考试)
考试题 Python11 期第二次考试(基础数据类型与函数部分) 考试时长:3个小时 满分:105分 一,选择题(每题2分,共24分) 1.python不支持的数据类型有 A.char B.int C ...
- python 全栈开发,Day12(函数的有用信息,带参数的装饰器,多个装饰器装饰一个函数)
函数的执行时,*打散.函数的定义时,*聚合. from functools import wraps def wrapper(f): # f = func1 @wraps(f) def inner(* ...
- python 全栈开发,Day9(函数的初始,返回值,传参,三元运算)
一.函数的初始 比如python没有len()方法,如何求字符串的长度使用for循环 s = 'fdshfeigjoglfkldsja' count = 0 for i in s: count += ...
- python 全栈开发,Day9(函数的初始,返回值,传参,三元运算)
一.函数的初始 比如python没有len()方法,如果求字符串的长度 使用for循环 s = 'asdfadsf' count = 0 for i in s: count += 1 print(co ...
- python全栈开发day15-递归函数、二分查找
1.昨日内容回顾 主要内置函数: map(func,iter1):返回迭代器 filter(func,iter1):返回迭代器 sorted(iter,key=,reverse=):返回列表 reve ...
- python全栈开发day14--内置函数和匿名函数
随机推荐
- fitting 方法的异常值过滤
training = pd.DataFrame({'x':[3,6,9,15,300, 20,85]}). 原始数据training_fitting = pd.DataFrame({'x':[4,7 ...
- 高并发Redis(Mac)环境配置(一)
一.产生原因: SNS交互型网站的兴起,对于高并发,大负载数据的操作,海量数据的存储和访问 NoSql四种类型: 键值存储(Redis优点可以快速查询,缺点缺少存储的结构化) ...
- ZooKeeper-3.4.10分布式安装指南
目录 目录 1 1. 前言 1 2. 约定 1 3. 安装步骤 2 3.1. 配置/etc/hosts 2 3.2. 设置myid 2 3.3. 修改conf/zoo.cfg 2 3.4. 修改/bi ...
- 通过面试题学习零散知识:Java面试题整理
一.如何看待面试题 对于喜欢学习的开发者来说,我们抛开工作和生活的时间,剩余的时间并不多,如果都用于学习的话,也不可能学的下所有感兴趣的技术点,精力也跟不上,我是深感如是.而面试题一般都是零碎的知识 ...
- Custom SOLR Search Components - 2 Dev Tricks
I've been building some custom search components for SOLR lately, so wanted to share a couple of thi ...
- CodeForces 588E A Simple Task(线段树)
This task is very simple. Given a string S of length n and q queries each query is on the format i j ...
- Fiddler手机https抓包
Fiddler手机抓包:https://blog.csdn.net/wangjun5159/article/details/52202059 fiddler 使用说明:https://www.cnbl ...
- GetFileVersionInfoSize函数确定操作系统是否可以检索指定文件的版本信息
GetFileVersionInfoSize函数 -------------------------------------------------- ------------------------ ...
- Android Studio3.2新建项目gradle read time out
试验了好几个小时,看了很多方法,都不管用,运用一下设置好了,记录一下 1. 2.在项目的build.gradle中添加 mavenCentral()maven { url 'https://maven ...
- php二维数组去除重复值
<?php //二维数组 $test["aa"] = array("id"=>"17","name"=> ...