python变量的作用域

在编程中,通常变量是有特定的起作用的范围的。这个范围通常包括了:全局范围、指定范围。

全局范围,顾名思义,在整个程序中都有效;

指定范围,是在特定的函数中起作用。

name = '张三'
def get_a_name():
    name = input('What is your name? ')
get_a_name()
print('你好', name)

首先,我们定义了一个变量name,让它的值为张三。接下来,我们定义了一个函数,在函数中,我们要求用户输入一个名字赋值给name变量。如果这个name变量不在函数中,那么结果是值会修改为用户提供的那个,然而,由于它在函数里面,默认情况下,函数里面的变量和全局变量是不同的两个变量。可以理解为一个是name,另一个是get_a_name.name,因此,在函数里面修改name并不会对全局变量name造成变化。结果如下:

What is your name? 李四
你好 张三

默认情况下,函数中的函数属于私有函数,只在函数中起作用,但是我们也是可以修改的,只是不常用。

name = '张三'

def get_a_name():
    global name
    name = input('What is your name? ')

get_a_name()
print('你好', name)

这里,我们用关键字global来确定name是全局变量,然后name的改变和前面定义的变量name就保持一致了。

What is your name? 王五
你好 王五

评论

发表评论

了解 数据控|突破是我们的每一步 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读