You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python函数执行后输出包含初始变量值?代码疑问解析

函数内修改薪资后全局变量未变化的原因

这是变量作用域的问题,核心是你函数里的salary和全局的salary根本不是同一个变量:

  • 你在函数外部定义的salary = 8000是全局变量,它的作用范围覆盖整个代码文件,但函数内部直接写salary = 12000时,Python会默认创建一个新的局部变量——这个变量只在printSalary()函数内部有效,和外面的全局变量毫无关联。
  • 调用printSalary()时,函数里打印的是自己创建的局部salary(值为12000);函数执行结束后,这个局部变量会被销毁,外部打印的依然是最初定义的全局salary(值为8000)。

如果想让函数修改全局的salary,需要在函数内部用global关键字声明要使用全局变量:

salary = 8000

def printSalary():
  global salary  # 声明此处使用的是全局作用域的salary
  salary = 12000
  print("Salary:", salary)
  
printSalary()
print("Salary:", salary)

此时两次输出都会是Salary: 12000。

内容的提问来源于stack exchange,提问作者Dasein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 01:45:36