python提高篇之函数3-变量的作用域
上节课我们给大家留了一个题,相信小伙伴还记得吧。我们一起回顾下。
def people(a, b, *args, sex="李四", **kwargs):
print(a)
print(b)
print(args)
print(sex)
print(kwargs)
people(1, 2, "a", "b", sex="男", name="张三")
# 1
# 2
# ('a', 'b')
# 男
# {'name': '张三'}
就是参数的顺序原则:位置参数、默认参数、可变参数、命名关键字参数、关键字参数
回顾完上次课程的知识点,我们就来学习本节课的内容。本节课我们讲解的是作用域的问题。
局部变量
所谓局部变量就是在局部地区有用,超过了范围就不起作用。我们看下面的例子。
def people():
name = '张三'
people()
print(name)
# NameError: name 'name' is not defined
运行代码会报错说明name在函数作用域之外是不起作用的。这就是局部变量。
全局变量
所谓全局变量就是在代码的任何位置都是可以使用的,我们看下面的例子。
name = '李四'
def people():
name = '张三'
people()
print(name)
# 李四
代码成功运行了,说明**name = '李四'**在代码的任何位置都能使用。
那么有没有将局部变量升级为全局变量的方法呢?那必须有啊。
global
这个单词的意思是全球的,全球就说明那个国家都可以使用,也就是全局的意思。具体用法我们看下面代码
name = '李四'
def people():
global name
name = '张三'
people()
print(name)
# 张三
上面的代码中我们只加了global name一行代码,相信小伙伴看出来区别了。我们打印了张三。我们成功的将局部变量升级成了全局变量,同时我们在函数内将名字做了赋值。
码字不易,欢迎大家在评论区留言,收藏。或者加入群聊一起进步学习。