weixin_43732226
2018-12-11 06:46
采纳率: 55%
浏览 396

python 为什么这段代码是这个结果

图片说明

这个结果为什么是1,不是2呢?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • threenewbee 2018-12-11 06:49
    已采纳

    fun(a)这里的a是作为全局变量,第一行的a,为1。
    函数内,修改的是作为参数的a,而不是全局变量,虽然a被修改为2,但是无法作用到实参上。
    将def fun(a):修改为 def fun():
    fun(a)修改为fun(),则结果是2

    已采纳该答案
    打赏 评论
  • Zhou7Jun 2018-12-11 07:25

    函数修改的是形参的值,不会影响到实参。

    打赏 评论
  • loveddhaha 2018-12-11 07:39

    a=1//全局变量
    def fun(a) : //a作为函数的入参,可以理解为局部变量,作用域只在函数体内。
    a=2

    fun(a) //只是将全局变量a的值传入,fun中对a值的任何修改不回影响到a.除非这里传的是全局变量a的地址指针。
    printf(a)//输出全局变量a的值,这个值未被改过, 仍为1,

    打赏 评论
  • xiaowuxiaoaa 2018-12-12 10:32

    了解下作用域 其实你只是在函数内定义了个同名变量

    打赏 评论

相关推荐 更多相似问题