python-局部变量、全局变量、global关键字

局部变量、全局变量、global关键字

文章目录

  • 局部变量、全局变量、global关键字
    • 局部变量与全局变量、global关键字
    • global的注意事项

局部变量与全局变量、global关键字

在Python中,变量的作用域指的是变量可以被访问的范围。主要有两种类型的变量作用域:局部变量和全局变量。

  1. 局部变量(Local Variables):
    • 局部变量是在函数内部声明的变量,其作用域仅限于声明它的函数内部。
    • 局部变量在函数被调用时创建,并且在函数执行完毕后销毁。
    • 其他函数无法访问局部变量。
    • 在函数内部声明局部变量时,可以使用var_name = value的形式进行声明和赋值。

下面是一个示例代码,展示了局部变量的作用域和声明方式:

def my_function():
    # 声明并初始化局部变量
    x = 10
    print("局部变量 x 的值为:", x)

my_function()  # 调用函数
print("尝试访问局部变量 x 的值:", x)  # 尝试访问不存在的局部变量 x

输出:

局部变量 x 的值为: 10
NameError: name 'x' is not defined

在上述示例中,x是在函数内部声明的局部变量。在函数内部,我们可以访问并打印x的值,但是在函数外部,尝试访问x会导致NameError,因为x只在函数内部有效。

  1. 全局变量(Global Variables):
    • 全局变量是在函数外部声明的变量,其作用域延伸到整个程序的范围。
    • 全局变量可以在任何函数内部访问和修改。
    • 在函数内部声明全局变量时,需要使用global关键字进行声明。
    • 全局变量的命名最好避免与局部变量重名,以免发生混淆。

下面是一个示例代码,展示了全局变量的作用域和声明方式:

# 声明全局变量
global_var = 20

def my_function():
    # 访问全局变量
    print("全局变量 global_var 的值为:", global_var)

    # 函数内部声明全局变量
    global global_var_inside
    global_var_inside = 30

my_function()  # 调用函数
print("函数内声明的全局变量 global_var_inside 的值为:", global_var_inside) 

输出:

全局变量 global_var 的值为: 20
函数内声明的全局变量 global_var_inside 的值为: 30
  1. 函数内部修改全局变量
# 声明全局变量
global_var = 20

def my_function():
    global global_var
    # 访问全局变量
    print("全局变量 global_var 的值为:", global_var)

    # 函数内部修改全局变量
    global_var=9999

my_function()  # 调用函数
print("修改后的全部变量为", global_var) 

要注意global关键字的位置

全局变量 global_var 的值为: 20
修改后的全部变量为 9999

global的注意事项

在使用global关键字声明全局变量时,有一些注意事项需要记住:

  1. 在函数内部使用global关键字声明变量之前,不能对该变量进行赋值操作。global关键字的作用是告诉Python解释器,这个变量是全局变量,而不是局部变量。因此,在使用global关键字之前,不应该对变量进行赋值操作,否则会被认为是一个局部变量。

以下是一个错误的示例:

def my_function():
    global x  # 错误的使用 global 关键字位置

    print(x)  # 使用全局变量
    x = 10  # 错误的在 global 关键字之前对变量进行赋值

my_function()

修正后的代码:

def my_function():
    global x  # 正确的使用 global 关键字位置

    print(x)  # 使用全局变量
    x = 10  # 修改全局变量的值

x = 5  # 在函数外部声明全局变量
my_function()
  1. 全局变量的修改会影响整个程序的执行。在多个函数中修改全局变量时,需要小心确保不会出现意外的修改。全局变量的修改会对程序中的其他部分产生影响,因此在设计和使用全局变量时需要谨慎。

  2. 尽量避免全局变量的滥用。全局变量的使用可能会导致代码的可读性和可维护性下降。最好只在有必要的情况下使用全局变量,尽量使用函数参数和返回值来传递和获取数据。

你可能感兴趣的:(python,python,开发语言)