在其子函数中访问函数的参数

har*_*dar 1 python function

我试图在其子函数中使用函数的参数,但收到未定义的错误。

示例代码如下所示:为简单起见,将父函数定义为父函数,将子函数定义为子函数。

def child():
    i += 1
    print(i)

def parent(i):
    print(2*i)
    child()
Run Code Online (Sandbox Code Playgroud)

PS我不想i作为参数传入,child()因为它在我的原始代码中不起作用。

我已经使用 classmethods 搜索并找到了一些解决方案,但我想要任何其他可能的方式。

che*_*ner 5

你不能。Python 是静态作用域的;child不会看起来在其从中函数的范围称为 一变量定义,只在作用域其所限定。你想要什么需要动态范围。(注意:这是一个与静态和动态类型不同的问题,后者涉及您可以分配给名称的值的类型。)

  • 虽然我同意这个问题需要一些澄清,但我认为关于范围界定的观点值得提出。 (3认同)