python的作用域分别有几种_python中作用域与函数嵌套
知识回顾:
拆解传参。
1.字典传参。使用**
2.列表传参。使用*
实际上我们在定义函数的时候,如果省略了星号,那么在调用函数的时候必须要省略星号,除非我们拆解后的参数个数刚好相等。
视频内容
本节知识视频教程
文字讲解开始:
一、作用域
作用域:可以被影响的范围。
全局变量:在最外层声明的变量。
局部变量:在某些代码块声明的变量。
全局变量举例
xxx=100 #最外层的变量,全局变量
def P():
print(xxx)
P()
说明:外面一层的变量,能够被代码块内部一层的变量调用。
局部变量的注意事项
1.在函数体内部声明的变量,不能再函数体外部去调用,会直接报错。
2.在函数体内部同名的局部变量,即使重新赋值了,也不会影响函数体外部的那个同名全局变量。如果真的想要改变外部同名的全局变量,那么我们必须要在函数体内部使用global关键字声明变量。
3.在函数体内部,如果先调用外部的全局变量后,是不能再次修改的,因为在函数体内部写了同名的变量后,会使得编译器无法识别局部变量还是全局变量,使得程序异常。
二、函数的嵌套
在python中是运行函数嵌套定义使用的。注意:函数体内部定义的函数也必须要手工调用才能使得有函数中的效果,否则默认是不被调用执行的。
举例:
#函数的嵌套
eee=10
def P3():
eee=20
print("P3中eee=",eee)
def P4():
fff=5
print("P4中的结果=",fff+eee)
P4()
P3()
函数嵌套的作用范围
在函数体内部定义的函数需要在函数体内部调用,默认不能在全局的作用范围的最顶层调用这个函数的。
函数的复杂嵌套调用
#函数的嵌套
eee=10
def P3():
eee=20
print("P3中eee=",eee)
def P4():
fff=5
print("P4中的结果=",fff)
return P4
P3()()
注意:如果使用双括号,在调用内存函数的时候,外层函数将会被自动调用。
函数的指针赋值调用
#函数的嵌套
eee=10
def P3():
eee=20
print("P3中eee=",eee)
def P4():
fff=5
print("P4中的结果=",fff)
return P4 #这里返回的是指针类型的变量
K1=P3()
K1()
结论:在调用内存函数的时候,外层函数也将会被自动调用。
三、解决问题的思路
1.带有红色下划线的报错,它是一种语法报错
2.异常报错,先调试,实在不行,可以将报错去直接搜索引擎直接搜索报错
3.搜索问题的知识点。
四、总结强调
1.作用域。全局变量区别于局部变量。
2.函数的嵌套。注意点,在内部定义的函数被调用时候会自动调用其父级函数。函数也有作用范围。
3.解决问题的思路。
4.一定要主动多测试代码。
本节源代码(已被#注释):# xxx=100 #最外层的变量,全局变量
#
# def P():
# ddd=300 #在函数体内部,是局部变量
# # global xxx
# xxx=200 #这个是与全部变量同名的局部变量
# # print(xxx)
#
# P()
# print(xxx)
# yyy=200
#
# def P2():
# print(yyy)
# # yyy=100
#函数的嵌套
# eee=10
# def P3():
# eee=20
# print("P3中eee=",eee)
# def P4():
# fff=5
# print("P4中的结果=",fff+eee)
# return P4 #这里返回的是指针类型的变量
#
# K1=P3
# K1()()
#
# ttt=10
# while(True):
# ttt=20
# break
# print(ttt)
python的作用域分别有几种_python中作用域与函数嵌套相关推荐
- python的作用域分别有几种_Python的作用域
如果习惯了C/C++,Java这类静态语言的作用域规则,那么在Python中就要格外注意.在代码中,我们经常会碰到同一个变量名出现在多个地方,它的作用域可能是不一样的.Python中有四种作用域:局部 ...
- python的sort方法是哪种_python中的sort方法使用详解
Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可 ...
- python进程间的通信方式三种_Python中的进程间通信
一只甜甜圈 不,zeromq是要走的路.好吃,不是吗?import argparseimport zmqparser = argparse.ArgumentParser(description='ze ...
- python getopt_python 5种 statsPython中的getopt函数使用详解
函数原型: getopt.getopt(args, shortopts, longopts=[]) 参数解释: args:args为需要解析的参数列表.一般使用sys.argv[1:],这样可以过滤掉 ...
- Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with regression line)
Python使用matplotlib可视化散点图.使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with linear regressio ...
- Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线
Python使用matplotlib可视化散点图.使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线(Each regression line in its o ...
- Python使用matplotlib可视化箱图、seaborn中的boxplot函数可视化分组箱图、在箱图中添加抖动数据点(Dot + Box Plot)
Python使用matplotlib可视化箱图.seaborn中的boxplot函数可视化分组箱图.在箱图中添加抖动数据点(Dot + Box Plot) 目录
- Python使用matplotlib可视化小提琴图、seaborn中的violinplot函数可视化多分类变量的小提琴图(Violin Plot)
Python使用matplotlib可视化小提琴图.seaborn中的violinplot函数可视化多分类变量的小提琴图(Violin Plot) 目录
- python中变量的作用域有几种_Python中变量的作用域(variable scope)
http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...
最新文章
- 消息队列--RabbitMQ简单使用
- 一个虐你千百遍的问题:“RPC好,还是RESTful好?”
- Spring学习之旅(四):面向切面编程(AOP)
- 企业如果结合职工筑牢安全生产压舱石_山能枣矿集团柴里煤矿机电运输科扎实推进女职工“素质提升+岗位建功”竞赛活动...
- 简单干净的C#方法设计案例:SFCUI.AjaxValue()之三
- 驱动研究日记-内核同步
- U-net使用, 图像分割(边缘检测)
- 在IDEA中玩转DEBUG模式,有BUG不会调试?不存在的。
- systemd使用教程
- 2020-11-11 对象与类
- a59s刷机包卡刷 oppo_OPPO A59S刷机包
- 图片打包下载,本地服务器打包文件下载,及线上图片地址下载
- 《机器学习实战》笔记——第四章:基于概率论的分类方法:朴素贝叶斯
- 微信新功能曝光:定时发送消息
- ThreeJS 骨架图显示、骨骼修改颜色
- GPG生成密钥对(Windows)及应用
- 每周一磁 · 矫顽力Hcb和内禀矫顽力Hcj
- include/linux/if_ppp.h:135: error: expected specifier-qualifier-list before 'aligned_u64'
- GetLastError 返回码含义
- 我男的,做电话销售,月入6000+,今年25了,感觉做不了几年,要不要转行软件测试,或者换其他工作?
热门文章
- 25款操作系统全面接触 [2]
- JS 中的return false的作用
- qrcode.js 二维码生成器
- VUE全局导航守卫、 请求、响应拦截器 的设置
- Thinking in Java 源代码 source code 在IDEA上运行
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十二║Vue实战:个人博客第一版(axios+router)...
- 如何给 mongodb 设置密码
- MIME Type的介绍
- HDU 3966 Aragorn's Story (树链点权剖分,成段修改单点查询)
- listview与gridview点击时的背景色取消