01 内存管理
- python的参数传递,传递的是参数值而非参数地址。参数值被复制后传递进函数。
- 对于数值类型的参数(即不可变类型,整型、浮点、复数等),在函数内改变参数值,函数外面不受影响。
- 对于容器类型的参数(即可变类型,列表、字典、字符串等),在函数内改变了容器里的内容,在函数的外面也可以体现出来。
02 变量作用域
- 创建于函数外部,它是全局(Global)的,它在这个py文件内部的任何地方可见。
- 创建于函数内部,它是局部(Local)的,它只能在函数内部才能访问,在函数外部不可见。
- 全局变量和局部变量重名,函数内会访问到局部变量,函数外访问到全局变量。
- 函数内部能访问全局变量,但不能修改!
gv1 = 1 # 全局变量
def test():
gv1 = 2
print('在函数内部访问全局变量:gv1 = %d' % gv1) # 访问内部局部变量 2
test()
print('在函数外部访问全局变量:gv1 = %d' % gv1) # 外部全局变量仍然是 1
- 如果非要在函数内部修改全局变量,需要在函数内通过global关键字声明
gv1 = 1
def test():
global gv1 # 通过global声明,此时全局变量可以在函数内部修改
print('在函数内部访问全局变量:gv1 = %d' % gv1) #1
gv1+=1
test()
print('在函数外部访问全局变量:gv1 = %d' % gv1) #2
文章来源地址https://www.toymoban.com/news/detail-834660.html
文章来源:https://www.toymoban.com/news/detail-834660.html
到了这里,关于python 函数-06-变量&参数内存管理及作用域的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!