DAY11、函数总结
一、函数的对象
1、函数对象:函数名存放的就是函数的地址,所以函数名也是对像
2、函数对象的应用:
2.1、可以直接被引用 fn = cp_fn
2.2、可以当作函数参数传递 computed(cp_fn,100,20)
2.3、可以作为函数的返回值 get_cp_fn(cmd): return add
2.4、可以作为容器类型的元素
二、名称空间
1、名称空间:存放名字与内存空间地址对应关系的容器
2、作用:解决由于名字有限,导致名字重复发送冲突的问题
3、三种名称空间:
Built-in:内置名称空间;系统级,一个;随解释器执行而产生,解释器停止而销毁
Global:全局名称空间;文件级,多个;随所属文件加载而产生,文件运行完毕而销毁
global关键字可以将Local的名字提升为Global的名字
Local:局部名称空间;函数级,多个;随所属函数执行而产生,函数执行完毕而销毁
注:加载顺序:Built-in > Global > Local
三、函数的嵌套定义:
将函数直接定义到另一个人函数内部,就可以使用外部函数中的名字
def outer():
num = 20
def inner():
print(num) # inner就可以直接使用outer中的名字
inner()
outer()
四、作用域:名字起作用的范围
1、作用:解决同名字可以共存问题
2、四种作用域:
2.1、Built-in:内置作用域,所有文件所有函数
2.2、Global:全局作用域,当前文件所有函数
2.3、Enclosing:嵌套作用域,当前函数与当前函数的内部函数
2.4、Local:局部作用域,当前函数
注:不同作用域之间名字不冲突,以达到名字的重复使用
查找顺序:Local > Enclosing > Global > Build-in
len = 10
def outer():
len = 20 # 外层函数的局部变量:Enclosing - 嵌套作用域
def inner():
len = 30
print('1:', len) # 30, inner -> outer -> global -> built-in
inner()
print('2:', len) # 20, outer -> global -> built-in
outer()
print('3:', len) # 10, global -> built-in
del len
print('4:', len) # len地址, built-in
五、闭包
1、closure:被包含的函数,称之为闭包
2、完整的闭包结构:
将函数进行闭包处理
提升函数名的作用域,将内部函数对象作为外部函数的返回值
def outer(url):
def get_html():
html = requests.get(url)
print(html.text)
return get_html
# 先预定义多个爬虫方法,爬页面操作并未执行
baidu = outer('https://www.baidu.com')
python = outer('https://www.python.org')
sina = outer('https://www.sina.com.cn')
# 什么时候想爬什么页面就调用指定页面的爬虫方法
baidu()
sina()
baidu()
DAY11、函数总结的更多相关文章
- day11——函数名的使用、f格式化、迭代器、递归
day11 函数名的第一类对象及使用 1.可以当作值被赋值给变量 def func(): print(1) print(func) a = func a() 2.当作元素存放在容器中 def func ...
- day11 函数
day11 函数 一.函数基础 """ 1 什么是函数 函数是盛放代码的容器:把实现某一功能的代码放到一个函数内就制造一个工具 2 为何要用函数 没有用函数之前程序的问题 ...
- python全栈学习--day11(函数高级应用)
一,函数名是什么? 函数名是函数的名字,本质:变量,特殊的变量. 函数名()执行此函数 ''' 在函数的执行(调用)时:打散. *可迭代对象(str,tuple,list,dict(key))每一个元 ...
- day11 函数的参数列表
""" 今日内容: 1.函数参数的分类 2.形参是对实参的值拷贝 3.实参的分类 4.形参的分类 5.打散机制 附1:字符串的比较 """ ...
- day11函数(形参实参)
形参与实参 def fn(形参们): pass # 形参:定义函数,在括号内声明的变量名,用来结束外界传来的值# 实参:调用函数,在括号内传入的实际值,值可以为常量.变量.表达式或三者的组合 # 注: ...
- Python——day11 函数(对象、名称空间、作用域、嵌套、闭包)
一.函数对象 函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象 函数对象的应用 1. 可以直接被引用 fn = cp_fn 2 .可以当作函数参数传递 c ...
- python学习day11 函数Ⅲ (内置函数与lambda表达式)
函数Ⅲ(内置函数&lambda表达式) 1.函数小高级 函数可以当做变量来使用: def func(): print(123) func_list = [func, func, func] # ...
- day11函数的参数,函数对象 - 函数名,函数的嵌套调用
复习 # 什么是函数:具体特定功能的代码块 - 特定功能代码块作为一个整体,并给该整体命名,就是函数 # 函数的优点: # 1.减少代码的冗余 # 2.结构清晰,可读性强 # 3.具有复用性,开发效率 ...
- day-11函数的形参与实参
形参与实参 参数介绍: 函数为什么要有参数:因为内部的函数体需要外部的数据 怎么定义函数的参数:在定义函数阶段,函数名后面()中来定义函数的参数 怎么使用函数的参数:在函数体中用定义的参数名直接使用 ...
- python学习Day11 函数的参数列表
复习 什么是函数? 具体特定功能的代码块 - 特定功能代码作为一个整体,并给该整体命名,就是函数 函数的优点 : 1.减少代码的冗余,2.结构清晰,可读性强 3.具有复用性,开发效率高,维护成本高 如 ...
随机推荐
- JAVA_内部类
内部类 什么是内部类? 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类 成员内部类:定义在类中方法外的类 定义格式示例: public class Tesdt { publ ...
- Android项目刮刮奖详解(三)
Android项目刮刮奖详解(二) 前言 上一期我们已经实现了一个简易的刮刮卡功能,这一期我们来将其完善一下 目标 将刮刮奖的宽高改为合适高度 将刮刮奖位置居中 将信息层的图片换成文字(重点) 实现 ...
- Python全栈之路(目录) - 含资料(持续更新)
一. Python全栈之路 - 目录 Python基础 Python进阶 网络编程 并发编程 前端 数据库 Python Web框架之Django 前端框架之Vue Linux Flask+智能玩具 ...
- 利用Azure虚拟机安装Dynamics CRM 2016实例
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复181或者20151215可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! Dynamics CRM Ser ...
- PJSUA2开发文档--第三章 PJSUA2高级API
3. PJSUA2高级API PJSUA2是PJSUA API以上的面向对象抽象.它为构建会话发起协议(SIP)多媒体用户代理应用程序(也称为IP / VoIP软电话)提供高级API.它将信令,媒体和 ...
- SQLServer之存储过程简介
存储过程定义 存储的过程 (存储过程(数据库引擎)) 是存储在数据库中的可执行对象. 存储过程分类 系统存储过程 系统存储过程是 SQL Server系统自身提供的存储过程,可以作为命令执行各种操 ...
- SQLServer之删除视图
删除视图注意事项 删除视图时,将从系统目录中删除视图的定义和有关视图的其他信息. 还将删除视图的所有权限. 使用 DROP TABLE 删除的表上的任何视图都必须使用 DROP VIEW 显式删除. ...
- MySQL:1366 - Incorrect string value错误解决办法
今天使用navicat向MySQL中插入中文时,报错: - Incorrect string value:... 在我自己数据库设计之初,没有设计好字符编码格式的问题. 使用如下语句解决: alter ...
- sqlserver日期函数大全
一,统计语句 1, - 统计当前[>当天00点以后的数据] SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT ...
- SQLServer之数据类型解析
数字 int.bigint.smallint 和 tinyint 使用整数数据的精确数字数据类型. 数据类型 范围 存储 tinyint 0 到 255. 1 字节 smallint -2^15 (- ...