如何访问闭包内的外部函数变量(python 2.6)?

发布于 2024-09-19 04:07:33 字数 227 浏览 4 评论 0原文

来自 wikipedia

我需要以类似的方式访问外部函数变量使用 python 3.x 中的“nonlocal”关键字。 python 2.6 有什么方法可以做到这一点吗? (不一定使用nonlocal关键字)

From wikipedia

I need to access outer functions variables in a similar manner as using the 'nonlocal' keyword from python 3.x. Is there some way to do that in python 2.6? (Not necessarily using the nonlocal keyword)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

俏︾媚 2024-09-26 04:07:33

在这种情况下,我总是使用辅助对象:

def outerFunction():
    class Helper:
        val = None
    helper = Helper()

    def innerFunction():
        helper.val = "some value"

当您启动一个应该向外部函数作用域写入值的新线程时,这也会派上用场。在这种情况下,helper 将作为参数传递给 innerFunction(线程的函数)。

I always use helper objects in that case:

def outerFunction():
    class Helper:
        val = None
    helper = Helper()

    def innerFunction():
        helper.val = "some value"

This also comes in handy when you start a new thread that should write a value to the outer function scope. In that case, helper would be passed as an argument to innerFunction (the thread's function).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文