大麦miracle 发表于 2018-1-26 14:33:17

关于内嵌函数变量的调用问题

代码如下。第一个可以正常实现,第二个就出现老师所说的问题,但是还是不太能明白,是不是里面的函数是可以调用外面的参数值的,

def out ():
        x=2
        def IN():
          y=x*x
          return(y)
        return IN()
def out ():
        x=2
        def IN():
          x=x*x
          return(x)
        return IN()

BngThea 发表于 2018-1-26 14:45:12

是可以调用,前提是没有同名的变量,第一种就是这个情况
第二种写法中x被认为是内部函数自己重新定义的,而又没有初始化,所以报错

大麦miracle 发表于 2018-1-26 15:07:16

BngThea 发表于 2018-1-26 14:45
是可以调用,前提是没有同名的变量,第一种就是这个情况
第二种写法中x被认为是内部函数自己重新定义的, ...

没有初始化的意思就是变量名是x而后面赋值内容也是含有x的是吧!初始化是不是就像x=2这种被重新定义了,

BngThea 发表于 2018-1-26 15:31:36

大麦miracle 发表于 2018-1-26 15:07
没有初始化的意思就是变量名是x而后面赋值内容也是含有x的是吧!初始化是不是就像x=2这种被重新定义了,

有赋值号的情况下认为是被重新定义
其实x=x*x相当于用自己去初始化自己,这当然是不允许的,你抛开这个程序,直接这样写就不对
页: [1]
查看完整版本: 关于内嵌函数变量的调用问题