我是靠谱客的博主 善良裙子,这篇文章主要介绍拜师——python基础入门—第6大节课—函数: 变量的作用域 全局变量 局部变量 栈帧内存分析讲解——day26第76课时: 变量的作用域 全局变量 局部变量 栈帧内存分析讲解,现在分享给大家,希望可以做个参考。

第76课时: 变量的作用域 全局变量 局部变量 栈帧内存分析讲解



变量的作用域(全局变量和局部变量):

全局变量;

1 在函数之外的变量,作用域为定义的模块,从模块开始到模块结束。

2全局变量一般作为常量使用

4在函数内部要改变全局变量的值要用global声明一下

局部变量;

1 在函数里面定义。(在函数内部),函数执行完就没有了

2 局部变量效率高于全局变量

3如果局部变量和全局变量同名,那么优先使用局部变量。不使用全局变脸

测试全局变量、局部变量。

a=3

a就是全局变量。

def tt01():
    b=1
    print(b)
tt01()

1

可以看到打印出1



def tt01():
    b=1
    print(b)

print(b)

报错!!!!!!!
B为全局变量,在外部不能使用。


a=4
def tt01():
    b=1
    print(b)
    a=300
    print(a)

tt01()

1

300

优先考虑a为局部变量



a=4
def tt01():
    b=1
    print(b)
    print(a)
tt01()

1

4

这里a为全局变量,由于局部变量里没有全局变量



Global声明全局变量:

a=4
def tt01():
    global a
    a=400
    print(a)

tt01()
print(a)

400

400

在函数中声明,函数中的a是全局变量 global a 。然后你可以发现,全局变量a也变为了400

打印局部变量、全局变量

a=4

def tt01():
    a=300
    b=4
    print(locals())
    print(globals())
tt01()

{‘a’: 300, ‘b’: 4}

{‘name’: ‘main’, ‘doc’:
‘n@author: 11038n@file: test.pyn@time: 2020/06/30n@desc:n’, ‘package’:
None, ‘loader’: <_frozen_importlib_external.SourceFileLoader object at
0x000002440EBD1CC0>, ‘spec’: None, ‘annotations’: {}, ‘builtins’:
<module ‘builtins’ (built-in)>, ‘file’:
‘D:/PycharmProjects/MyTest/test.py’, ‘cached’: None, ‘a’: 4, ‘tt01’:
<function tt01 at 0x000002440EE9C1E0>}

可以看到函数里面的局部变量为a、b 全局变量有一大堆



a=4


def tt01():
    global a
    a=300
    b=4
    print(locals())
tt01()

{‘b’: 4}

可以看到局部变量就只有b一个了。

最后

以上就是善良裙子最近收集整理的关于拜师——python基础入门—第6大节课—函数: 变量的作用域 全局变量 局部变量 栈帧内存分析讲解——day26第76课时: 变量的作用域 全局变量 局部变量 栈帧内存分析讲解的全部内容,更多相关拜师——python基础入门—第6大节课—函数:内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部