python基础之名称空间和作用域、函数嵌套

一、名称空间

1、定义:存放名字与值的绑定关系

2、名称空间分为:内置名称空间、全局名称空间、局部名称空间

内置名称空间:python解释器自带的名字,python解释器启动就会生成

全局名称空间:文件级别定义的名字都会存放与全局名称空间,执行python文件时会产生

局部名称空间:定义在函数内部的名字,局部名称空间只有在调用函数时才会生效,函数调用结束则失效

3、加载的顺序:三者的加载顺序:内置名称空间->全局名称空间->局部名称空间

4、取值的顺序:局部名称空间->全局名称空间->内置名称空间7

# # max=10
# def func(): #x=1
#     # max=20
#     print(max)
#
#
# func()# max=10
#
# def func(): #x=1
#     max=20
#     # print(max)
# func()
#
#
# print(max)
#
# # x=0
# def f1():
#     # x=1
#     def f2():
#         # x=2
#         def f3():
#             # x=3
#             print(x)
#         f3()
#     f2()
#
# f1()

二、作用域

1、范围:

全局作用域:内置名称空间与全局名称空间的名字属于全局范围,在整个文件的任意位置都能被引用,全局有效

局部作用域:局部名称空间的名字属于局部范围,只在函数内部可以被引用,局部有效

# x=1
# def foo():
#     def f2():
#         print(x)
#     f2()
# def bar():
#     print(x)
#
# foo()
# bar()# def f1():
#     x=1
#     def f2(): #f2=value
#         # x=2
#         print(x)
#     f2()
# f1()
x=1
def func():x=2def f1():pass# print(dir(globals()['__builtins__'])) #全局作用域name# print(locals()) #局部作用域name

func()print(globals() is locals())

2、作用顺序是:局部作用域》》》》》》全局作用域

三、函数嵌套

1、函数的嵌套定义

def f1():def f2():def f3():print('from f3')print('from f2')f3()print('from f1')f2()
# print(f1)
f1()

2、函数的嵌套调用

def max2(x,y):if x > y:return xelse:return ydef max4(a,b,c,d):res1=max2(a,b) #23res2=max2(res1,c) #23res3=max2(res2,d) #31return res3
print(max4(11,23,-7,31))

 

转载于:https://www.cnblogs.com/fenglinglf/p/7003115.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

与微信、APP正面刚?三大运营商联合发布5G消息白皮书

来源:数据观综合4月8日,中国移动、中国电信、中国联通联合发布《5G消息白皮书》,宣布推出全新的信息交互服务——“5G消息”和生态建设构想,这意味着我国基础短信业务进入全面升级通道,传统短信将被5G消息(RCS业务)逐步…

Linux磁盘及文件系统(二)Linux下磁盘命名和分区

在为主机添加硬盘之前,首先需要了解Linux系统下对硬盘和分区的命令方法 一、磁盘命名 Linux下对SCSI和SATA设备是以sd命名的,第一个SCSI设备是sda,第二个是sdb....以此类推。一般主板上有两个SCSI接口,因此一共可以安装4个SCSI设备。主SCSI上…

tensorflow如何取平均_【他山之石】利用Tensorflow构建CNN图像多分类模型及图像参数、数据维度变化情况实例分析...

“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等&…

计算机涉及数学知识点,初二数学知识点归纳

无论你是带着欣喜还是遗憾进入了初二,一切都在这一刻重新开始。初二的数学学习开始啦!大家有没有什么好的学习方法来分享呢?知识点要学得明白,记得牢固。初二数学上册的知识点你知道吗?不知道的赶紧和沪江小编一起往下看吧。1 全等三角形的对应边、对应…

华为AR地图正式发布:每平方公里40亿三维信息点,1:1还原世界

来源:M数码4月8日晚,华为P40系列发布会上,余承东介绍了全新的华为AR地图,官方称实现了每平方公里40亿三维信息点,1:1还原真实世界。官方称华为AR地图是厘米级3D地图,每平方公里40亿三维信息点,1…

4_用户管理

用户怎么管理? -- 创建用户 - create user ‘用户名’’ ip地址’ indentified by ‘密码’; -- 删除用户 - drop user ‘用户名’’ ip地址’; -- 修改用户 -rename user ‘用户名’’ ip地址’ to ‘新用户’’ ip地址’; -- 修改密码 - set password for ‘用户…

船员能力评估计算机软件系统,船舶动力电力训练系统操作水平综合评估算法研究...

摘要:近年来随着航运事业的不断发展,航海专业技术人员的需求量持续增大,培养大量高质量的船员对于保证船舶航行的安全性和经济性具有重要意义。传统的实船操作训练评估方法受到资源有限、安全性较低以及人力评估的主观性等问题的影响,难以满足船舶对于大量优质船员的…

《全球创新观察》研究报告3月刊下发布

来源: 资本实验室大疫之下,全球产业格局有哪些变动?5G竞赛,又为哪些行业带来新风口?一起来看本期《全球创新观察》▼关于《全球创新观察》本报告是由国创会创新院(中国科学院国家创新与发展战略研究会创新驱…

python123字典统计排序1省份_python 列表、字典多排序问题

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/justin051/article/details/84289189Python使用sorted函数来排序:l [2,1,3,5,7,3]print …

rem和css3的相关知识点

☆☆☆rem和css3的相关知识点☆☆☆ 一、 Web front-end development engineer rem是根据页面的根元素的font-size的一个相对的单位,即 html{ font-size:16px;//自定义根部元素的字体大小 } 比如我们在一个div中,如此写 div{ width:2rem; }那么我们的wid…

青岛农商银行计算机防病毒应用培训,青岛农商银行胶州支行多元化培训提升安防管理水平...

今年以来,青岛农商银行胶州支行面对当前严峻的社会治安形势,不等不靠,积极采取多元化、立体式培训模式,取得较好效果,有效提升了安防管理水平。请进来,抓好安保理念教育近期,该支行积极协调胶州…

简述div标签和span标签的不同_div与span区别及用法

DIV与SPAN区别及div与san用法篇接下来了解在divcss开发的时候在html网页制作,特别是标签运用中div和span的区别及用法。新手在使用web标准(div css)开发网页的时候,遇到第一个问题是div与span有什么区别,什么时候用div,什么时候用…

学自动化必知:20个传感器原理及应用动图

来源:工业机器人1.探伤仪2.氧浓度传感器3.电容传感器4.差压式液位计(负迁移)5.差压式液位计(无迁移)6.差压式液位计(正迁移)7.料位计(称重式)8.电位式传感器9.电子吊称10…

软件测试知识产权保护,一种软件测试方法及软件测试系统专利_专利申请于2017-09-07_专利查询 - 天眼查...

1. 一种软件测试方法,其特征在于,包括: 自动化测试工具执行数据生成自动化用例得到交易场景数据;其中,所述数据生成自 动化用例由自动化工具根据交易场景的数据编写得到; 使用预设数量的自动化用例和所述交易场景数据执…

pat1111-1120

1111 比较麻烦的最短路 #include<cmath> #include<map> #include<iostream> #include<cstring> #include<cstdio> #include<set> #include<vector> #include<queue> #include<stack> #include<algorithm> using n…

华为云占用443端口_关于XAMPP默认端口80和443被占用的问题

关于安装xampp-win32-1.8.1-VC9-installer.zip后启动时候报端口80和443被占用的问题解决xampp-win32-1.8.1-VC9-installer.zip下载地址http://pan.baidu.com/s/1pKLTKk71、打开cmd输入&#xff1a;netstat -ano找到红色1圈中位80和443对应的程序的PID2、cmd继续输入&#xff1a…

体育测试数据绘图软件,原创健身运动体育测试数据统计app界面

原创设计原创健身运动体育测试数据统计app...素材是用户QQ173F1B6A上传到我图网&#xff0c;素材大小为0.65 MB&#xff0c;素材的尺寸为1024px1780px&#xff0c;图片的编号是27962446&#xff0c;颜色模式为RGB&#xff0c;授权方式为VIP用户下载&#xff0c;成为我图网VIP用…

解析|一文读懂AGV的关键技术——激光SLAM与视觉SLAM的区别

来源&#xff1a;新机器视觉移动机器人(AGV)是工业机器人的一种。它由计算机控制&#xff0c;具有移动、自动导航、多传感器控制、网络交互等功能&#xff0c;在实际生产中最主要的用途是搬运&#xff0c;可以说只要有搬运需求的地方&#xff0c;就有移动机器人的应用可能。近年…

远程服务器端口是否开放(审计)

定期对服务器进行扫描&#xff0c;将危险端口有开放的服务器记录日志或通过邮件、微信告警出来先定义服务器列表 iplist&#xff1a;10.10.0.5010.10.0.5110.10.0.52....检查端口过程如下&#xff1a; #!/bin/bashfor i in awk {print $1} iplist; do if [[ $(nmap $i -p 22 |g…

vue伸缩效果_Vue.js - 元素展开、收起动画效果组件(附:二级菜单的展开、收缩动画效果)...

子菜单的展开、收缩功能在许多系统上都很常见&#xff0c;如果想要在打开收起时带有动画效果&#xff0c;过去常常会通过 jQuery 实现。而在 Vue 项目中&#xff0c;我们可以单独封装一个动画组件&#xff0c;方便使用。1&#xff0c;效果图点击一级菜单时&#xff0c;子菜单会…