首页 > 解决方案 > 为什么 Python 函数不能将子函数声明为全局对象?

问题描述

所以我曾经听说过 Python 将函数作为第一类对象处理,那为什么会失败呢?

def func():
    global add
    def add():
        print('hi')
add()

错误:未定义添加

标签: python

解决方案


你可以。

但是func在您的示例中尚未运行,因此add尚未创建该函数。

尝试以下操作;

def func():
    global add
    def add():
        print("hi")

func()
add()

我想不出一个合理的理由来解释你为什么要这样做——但现在你知道了。


推荐阅读