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一行代码,相信小伙伴看出来区别了。我们打印了张三。我们成功的将局部变量升级成了全局变量,同时我们在函数内将名字做了赋值。

码字不易,欢迎大家在评论区留言,收藏。或者加入群聊一起进步学习。