在编程中,通常变量是有特定的起作用的范围的。这个范围通常包括了:全局范围、指定范围。
全局范围,顾名思义,在整个程序中都有效;
指定范围,是在特定的函数中起作用。
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? 王五
你好 王五
发表评论