知识回顾:

拆解传参。

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中作用域与函数嵌套相关推荐

  1. python的作用域分别有几种_Python的作用域

    如果习惯了C/C++,Java这类静态语言的作用域规则,那么在Python中就要格外注意.在代码中,我们经常会碰到同一个变量名出现在多个地方,它的作用域可能是不一样的.Python中有四种作用域:局部 ...

  2. python的sort方法是哪种_python中的sort方法使用详解

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可 ...

  3. python进程间的通信方式三种_Python中的进程间通信

    一只甜甜圈 不,zeromq是要走的路.好吃,不是吗?import argparseimport zmqparser = argparse.ArgumentParser(description='ze ...

  4. python getopt_python 5种 statsPython中的getopt函数使用详解

    函数原型: getopt.getopt(args, shortopts, longopts=[]) 参数解释: args:args为需要解析的参数列表.一般使用sys.argv[1:],这样可以过滤掉 ...

  5. Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with regression line)

    Python使用matplotlib可视化散点图.使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with linear regressio ...

  6. Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线

    Python使用matplotlib可视化散点图.使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线(Each regression line in its o ...

  7. Python使用matplotlib可视化箱图、seaborn中的boxplot函数可视化分组箱图、在箱图中添加抖动数据点(Dot + Box Plot)

    Python使用matplotlib可视化箱图.seaborn中的boxplot函数可视化分组箱图.在箱图中添加抖动数据点(Dot + Box Plot) 目录

  8. Python使用matplotlib可视化小提琴图、seaborn中的violinplot函数可视化多分类变量的小提琴图(Violin Plot)

    Python使用matplotlib可视化小提琴图.seaborn中的violinplot函数可视化多分类变量的小提琴图(Violin Plot) 目录

  9. python中变量的作用域有几种_Python中变量的作用域(variable scope)

    http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...

最新文章

  1. 消息队列--RabbitMQ简单使用
  2. 一个虐你千百遍的问题:“RPC好,还是RESTful好?”
  3. Spring学习之旅(四):面向切面编程(AOP)
  4. 企业如果结合职工筑牢安全生产压舱石_山能枣矿集团柴里煤矿机电运输科扎实推进女职工“素质提升+岗位建功”竞赛活动...
  5. 简单干净的C#方法设计案例:SFCUI.AjaxValue()之三
  6. 驱动研究日记-内核同步
  7. U-net使用, 图像分割(边缘检测)
  8. 在IDEA中玩转DEBUG模式,有BUG不会调试?不存在的。
  9. systemd使用教程
  10. 2020-11-11 对象与类
  11. a59s刷机包卡刷 oppo_OPPO A59S刷机包
  12. 图片打包下载,本地服务器打包文件下载,及线上图片地址下载
  13. 《机器学习实战》笔记——第四章:基于概率论的分类方法:朴素贝叶斯
  14. 微信新功能曝光:定时发送消息
  15. ThreeJS 骨架图显示、骨骼修改颜色
  16. GPG生成密钥对(Windows)及应用
  17. 每周一磁 · 矫顽力Hcb和内禀矫顽力Hcj
  18. include/linux/if_ppp.h:135: error: expected specifier-qualifier-list before 'aligned_u64'
  19. GetLastError 返回码含义
  20. 我男的,做电话销售,月入6000+,今年25了,感觉做不了几年,要不要转行软件测试,或者换其他工作?

热门文章

  1. 25款操作系统全面接触 [2]
  2. JS 中的return false的作用
  3. qrcode.js 二维码生成器
  4. VUE全局导航守卫、 请求、响应拦截器 的设置
  5. Thinking in Java 源代码 source code 在IDEA上运行
  6. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十二║Vue实战:个人博客第一版(axios+router)...
  7. 如何给 mongodb 设置密码
  8. MIME Type的介绍
  9. HDU 3966 Aragorn's Story (树链点权剖分,成段修改单点查询)
  10. listview与gridview点击时的背景色取消