函数总结

摘要:
1、 函数对象1.函数对象:函数名称存储函数的地址,因此函数名称也应用于图像2。函数对象:2.1。它可以直接引用fn=cp_ Fn2.2。它可以用作传递计算(cp_fn,100,20)2.3的函数参数。它可以作为函数get_ cp_ fn(cmd):returnadd2.4的返回值。可以用作容器类型的元素。2.命名空间。1.命名空间:存储名称和内存空间地址之间的对应关系的容器。2.功能:解决名字有限的问题,

一、函数的对象

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()

免责声明:文章转载自《函数总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OpenId Connect与OAuthSystemInfo获取设备系统参数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Zabbix故障处理系列

然后,您还需要重新启动zabbix porxy。我刚重启了zabbix特工。然而,Zabbix网络界面的图形中没有数据。此时,重新启动zabbix代理以解决相应的问题。Zbx在Zabbix监控的网页上也显示为灰色。有时,其中一些可能是绿色的,如下所示:问题2:当Zabbix代理未升级时,无法在Zabbix监控页面上监控数据。原因:ZABBIX4.0版本存在兼...

Map的深浅拷贝的探究

detailsmap.get:"");}}}查看输出:可以看到通过“=”复制的map内容随源map的改变而改变,而通过putAll方法和Iterator复制的map则不受源map改变的影响。如示例中的三种拷贝方法:针对map中的数据为统一的、简单的基本数据类型,当拷贝的数据通过“=”复制map的方法为浅拷贝,putAll方法为深拷贝,iterator遍历添加...

Xmind常用快捷键

快捷鍵(WINDOWS)快捷鍵(MAC)描述Ctrl+NCommand+N建立新工作簿Ctrl+OCommand+O开启工作簿Ctrl+SCommand+S储存目前工作簿Ctrl+Shift+SCommand+Shift+S储存全部工作簿Ctrl+WCommand+W关闭目前工作簿Ctrl+Shift+WCommand+Shift+W关闭全部工作簿Ctrl+...

beego

Charset=utf8“)56//参数4(可选)设置最大空闲连接7//参数5modelorm.RegisterModelRegisterModelWithPrefix。使用表名前缀orm.RegisterModelWithPrefixbeego自动创建表。1//参数1使用默认数据库ORM接口使用1//查询操作2funread(){3o:=ORM.NewOr...

uniapp安卓真机调试提示检测不到手机【解决办法】

以下是具体的解决方案:步骤1:打开、查找、单击并单击7次或更多次,以允许开发人员进行选择。...

Grafana 安装配置启动

多个数据源:Graphite、InfluxDB、OpenTSDB、Prometheus、Elasticsearch、CloudWatch、KairosDB、Zabbix等。通知和提醒,达到目标设置的阈值,并发出警报。grafana具有以下三个用户权限管理员:超级管理员,具有所有权限查看器:只能查看DashBoardEditer:无法创建用户,无法添加数据源,...