鱼C论坛

 找回密码
 立即注册
查看: 3664|回复: 3

[已解决]关于内嵌函数变量的调用问题

[复制链接]
发表于 2018-1-26 14:33:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

  1. def out ():
  2.         x=2
  3.         def IN():
  4.             y=x*x
  5.             return(y)
  6.         return IN()
复制代码
  1. def out ():
  2.         x=2
  3.         def IN():
  4.             x=x*x
  5.             return(x)
  6.         return IN()
复制代码
最佳答案
2018-1-26 14:45:12
是可以调用,前提是没有同名的变量,第一种就是这个情况
第二种写法中x被认为是内部函数自己重新定义的,而又没有初始化,所以报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-26 14:45:12 | 显示全部楼层    本楼为最佳答案   
是可以调用,前提是没有同名的变量,第一种就是这个情况
第二种写法中x被认为是内部函数自己重新定义的,而又没有初始化,所以报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

没有初始化的意思就是变量名是x而后面赋值内容也是含有x的是吧!初始化是不是就像x=2这种被重新定义了,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

有赋值号的情况下认为是被重新定义
其实x=x*x相当于用自己去初始化自己,这当然是不允许的,你抛开这个程序,直接这样写就不对
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-20 05:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表