在内部函数之后定义变量是一个糟糕的做法?

2024-04-29 14:17:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我认为只有在声明之后才能访问变量。 但显然,Python的名称解析开始从内到外寻找

我的问题是,就可读性而言,这是不好的做法?我想知道这可能是Pythonista的一个常识,这样我就可以从现在开始编写这种代码了

def outer():
    def inner():
        print x
    x = ‘foo’
    inner()
>>> outer()
>>> ‘foo’

Tags: 代码名称声明foodefinnerpythonistaprint
1条回答
网友
1楼 · 发布于 2024-04-29 14:17:52

当您调用inner()时,它开始执行。在第print x行看到变量名x。然后它查找函数inner的内部作用域,没有在那里找到变量x。然后它看外部作用域,即outer的作用域。此时已经定义了变量x(正如在inner()调用之前所做的那样),并且使用了这个变量

相关问题 更多 >