前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中作用域与函数嵌套

python中作用域与函数嵌套

作者头像
刘金玉编程
发布2019-07-31 15:40:36
7050
发布2019-07-31 15:40:36
举报
文章被收录于专栏:编程创造城市

知识回顾:

拆解传参。

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.一定要主动多测试代码。

本节源代码(已被#注释):

代码语言:javascript
复制
# 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)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程创造城市 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档