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

关于Python代码输出的疑问:为何输出6而非预期的10?

问题解析

你这段代码里有三个完全独立的value变量,分别属于不同的作用域:

  • 全局变量value = 6:定义在所有类和函数之外,属于全局命名空间
  • 类A的类属性value = 5:绑定在类A本身,存在于类的命名空间中
  • 实例a的实例属性a.value = 10:是你给实例a单独添加的属性,存在于实例a自己的命名空间里

当你执行print(value)时,Python会在当前的全局作用域里查找名为value的变量,找到的就是最开始定义的6,所以输出结果是6。

你预期输出10,应该是混淆了不同作用域的变量:

  • 如果想打印实例a的属性,要写print(a.value),这样会输出10
  • 如果想打印类A的类属性,写print(A.value),会输出5
  • 只有直接修改全局变量value = 新值,才会改变print(value)的输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 03:33:14