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

区分局部与全局变量:示例程序中num是否兼具两类变量属性?

关于Python中全局变量与局部变量的疑问

首先看你给出的代码:

num = 1
def fun1(num):
    print(num)

1. 变量num是否同时充当全局变量与局部变量?

答案是不是——虽然它们名字相同,但本质是两个完全独立的变量:

  • 函数外定义的num = 1是全局变量,作用域覆盖整个模块(除了被局部变量同名遮蔽的区域);
  • 函数fun1的参数num是局部变量,作用域仅限fun1函数内部。

你可以把它们理解成同名的两个不同盒子,一个放在“全局仓库”,一个放在“fun1的专属小房间”,互相不干扰。

2. 函数参数num是否属于fun1()的局部变量?

完全正确!在Python中,函数的参数默认就是该函数的局部变量。当你调用fun1(num)时,其实是把全局变量num的值(也就是1)传递给了函数的局部参数num,函数内部使用的num都是这个局部版本,和全局的num没有直接关联。

举个更直观的例子验证一下:

num = 1
def fun1(num):
    num = 2  # 修改的是局部变量num
    print("函数内的num:", num)

fun1(num)
print("全局的num:", num)

运行这段代码会输出:

函数内的num: 2
全局的num: 1

可见函数内部修改局部参数num完全不会影响全局的num,进一步证明它们是独立的变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:01:27