其他分享
首页 > 其他分享> > 20201203-1 局部变量与全局变量作用域2

20201203-1 局部变量与全局变量作用域2

作者:互联网

1-1 如果将没有定义的变量全局化
def change_name():
    global name
    name = 'celestial'

change_name()
print(name)
--->
celestial
# 说明这样写是没有问题的,虽然这样可行,但是永远不要这么做

1-2 为什么不要这样用?
函数可以在程序中的很多地方调用,将会很难调试。全局变量是显示定义,而不是在函数里定义,这就是一种作死行为。
1-3
school = 'zxcv edu.'
names = ['Celestial','Ocean','Earth']
def change_name():
    names[0] = '天空'
    print('inside func',names)

change_name()
print(names)
--->
inside func ['天空', 'Ocean', 'Earth']
['天空', 'Ocean', 'Earth']

# 局部变量不能修改全局变量,现在为什么能修改?
# 只有字符串和单独的整数,是无法在函数中修改的,稍微复杂一点的数据类型,列表,字典,集合和类都是可以在局部中直接修改全局的 

全局与局部变量
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

 

标签:name,作用域,局部变量,20201203,names,全局变量,change,定义
来源: https://www.cnblogs.com/azxsdcv/p/14077615.html