找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2315|回复: 2

[求助] python函数作用域问题

1

主题

2

帖子

2

积分

贫民

积分
2
zzsunday 发表于 2018-1-30 21:46:49 | 显示全部楼层 |阅读模式

为什么这个嵌套函数f2不能调用,返回函数f2的时候,最后输出出现一个none

为什么这个嵌套函数f2不能调用,返回函数f2的时候,最后输出出现一个none

为什么嵌套的f2不能调用,返回函数f2后,输出结果f1为什么会返回 一个none
回复

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
zzsunday  楼主| 发表于 2018-1-30 21:53:23 | 显示全部楼层
11.png
这是代码部分
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

贫民

积分
3
tylitianrui 发表于 2018-2-1 16:28:53 | 显示全部楼层
因为f2函数在f1中定义的。只有f1函数运行到def f2()这条语句时,f2函数才会被定义。这就是第一次报错的原因。因为针f2函数,你没有写return语句。所以f2函数默认返回None。

def f1():
    x = 3
    z = 4
    def f2():
        y = 2
        print(x,y)
        return 1 # 添加return语句
    return f2

def main():
    f = f1()
    print(f())


if __name__ == '__main__':
    main()
回复 支持 反对

使用道具 举报

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

本版积分规则

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