[经验分享] 演示局部变量和全局变量重名的情况

[复制链接]
 楼主| qsrg51 发表于 2023-8-20 15:54 | 显示全部楼层 |阅读模式
当局部变量和全局变量重名时,程序中的作用域规则会决定哪个变量会被访问或修改。作用域是指变量在程序中可见和可访问的区域。通常情况下,局部变量和全局变量具有不同的作用域,因此可以使用相同的名称,但在不同的上下文中引用它们。
 楼主| qsrg51 发表于 2023-8-20 15:54 | 显示全部楼层
局部变量:局部变量是在函数内部声明的变量,它们只在声明它们的函数内部可见。当函数被调用时,局部变量会被创建,当函数执行完毕时,这些变量的作用域也就结束了。如果在函数内部声明了与全局变量同名的局部变量,那么在函数内部,局部变量会覆盖全局变量的值。
 楼主| qsrg51 发表于 2023-8-20 15:54 | 显示全部楼层
全局变量:全局变量是在整个程序中都可见和访问的变量,它们通常在函数外部声明。全局变量在程序启动时创建,在程序结束时销毁。如果函数内部有一个与全局变量同名的局部变量,函数内部的代码将使用局部变量而不是全局变量。
 楼主| qsrg51 发表于 2023-8-20 15:54 | 显示全部楼层
下面是一个示例,演示了局部变量和全局变量重名的情况:
 楼主| qsrg51 发表于 2023-8-20 15:54 | 显示全部楼层
  1. global_variable = 10  # 全局变量

  2. def example_function():
  3.     local_variable = 5  # 局部变量,与全局变量同名
  4.     print("Inside function - local_variable:", local_variable)  # 输出局部变量的值

  5. example_function()
  6. print("Outside function - global_variable:", global_variable)  # 输出全局变量的值
 楼主| qsrg51 发表于 2023-8-20 15:54 | 显示全部楼层
在这个示例中,example_function 内部声明了一个名为 local_variable 的局部变量,它与外部的 global_variable 同名。在函数内部,局部变量的值会被打印出来,而在函数外部,全局变量的值会被打印出来。
 楼主| qsrg51 发表于 2023-8-20 15:54 | 显示全部楼层
总之,当局部变量和全局变量重名时,函数内部将优先使用局部变量,而不会影响到全局变量的值。
tpgf 发表于 2023-9-11 10:02 | 显示全部楼层
他们的作用域不同 在内部应该局部变量会掩盖全局变量
磨砂 发表于 2023-9-11 10:16 | 显示全部楼层
他们的作用域以及生存空间是不一样的
八层楼 发表于 2023-9-11 10:43 | 显示全部楼层
我们最好不要让这种情况发生 不好控制 容易出错
观海 发表于 2023-9-11 11:29 | 显示全部楼层
这种操作是非常不好的  最好要避免
guanjiaer 发表于 2023-9-11 12:02 | 显示全部楼层
这种错误是非常不容易排查的  编写代码的时候就要注意不要犯这种错误
晓伍 发表于 2023-9-11 18:06 | 显示全部楼层
现在的编译器会对这种情况报错吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

444

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部