问题标签 [python-nonlocal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
316 浏览

python - 我可以在不使用 nonlocal 语句的情况下获取非局部变量的值吗?

我有一个局部变量x = "local",不幸的是它与全局变量和非局部变量共享它的名称。在不更改任何名称的情况下,我可以访问所有三个值吗?因为x = "global"globals(),但是非局部变量呢?

说明问题的最小示例:

0 投票
2 回答
126 浏览

python - 使用 += 运算符的语法无效

在 python 中使用 += 时,我不断收到语法错误,这是我的代码。我也有非本地的麻烦。我收到很多错误,包括语法错误和未绑定的本地错误提前谢谢!!!

更新:添加了更多代码这是所有代码它现在说在分配之前引用了局部变量“公民”

0 投票
1 回答
55 浏览

python - 在 exec 中使用非本地

为什么下面的代码:

)

给出这个错误:

这是满足文本/代码比率的更多文本。

0 投票
2 回答
250 浏览

python-3.x - 为什么 Python 3.8.0 允许在不使用“非本地”变量的情况下从封闭函数范围更改可变类型?

在以下 Python 3.8.0.0 脚本中,不允许从子/嵌套函数的封闭函数范围更改不可变变量,但是,在不使用子/嵌套函数的非本地声明的情况下修改可变类型元素工作得很好。有人可以解释一下,为什么会这样?

输出

0 投票
2 回答
843 浏览

python - Python 函数定义中的点表示法

我知道 Python 支持面向对象的结构,它使用点表示法。但是,我对下面的代码感到困惑,其中点符号出现在没有定义类的函数定义中。那是在 Python 中定义为函数属性 [我猜] 的某些特性吗?

第二个问题:是否有替代方法可以使用 nonlocal 语句而不是点表示法来重写上面的代码来记录 call_count?

0 投票
1 回答
37 浏览

python - 特定功能的非本地绑定

结果如下:

为什么def outer()def vnat()(5) 的值?以及如何使用[2]def outer()的值指定?nonlocal xdef inner()

我需要的输出:

0 投票
1 回答
250 浏览

python - Python 范围、函数、块和非本地

0 投票
1 回答
29 浏览

python - 如何在嵌套函数中调用父变量

我用cv2和编写了一个去噪函数concurrent.futures,用于我的训练和测试图像数据。

功能(当前)如下:

data必要时为traintestimg_list是该目录中所有图像名称的列表。

需要先创建denoise_single_image()函数denoise(),否则denoise()无法识别;但我需要data在创建之前定义denoise_single_image(). 这似乎是一个 catch-22,除非我能弄清楚如何告诉denoise_single_image()引用存在于上一级的变量。

nonlocal不起作用,因为它假定data已在此环境中定义。有什么办法可以让它工作吗?

0 投票
0 回答
45 浏览

python - 使用 python 非本地变量存储递归的输出 VS 直接返回递归

如文档字符串中所述,我正在尝试设计一个函数,该函数通过传入一些聚集在一起形成家谱的巫师来生成与其父母在同一所房子里的巫师的名字。

这些是要传递给函数的数据的一些示例。


在上面的函数中,我使用非本地范围结果中的变量来存储想要的值并使递归助手不返回任何内容。


我使用了辅助函数 return 和非局部变量result的组合。


对于这个函数,我使用return语句直接返回想要的值。


所以我想知道我应该使用哪一个。我可以使用累加器结束第三个 fn 以形成尾递归以获得更好的性能。但是,对我来说,第一个和第二个函数的方法不那么复杂,更容易理解或调试,这使得它们更好用,尤其是在设计函数变得更大和更复杂的时候。但是这有什么约定吗?他们之间有什么区别?

附加问题:可以将使用与第一个 fn 相同方法的函数视为尾递归吗?

0 投票
1 回答
37 浏览

python - 何时使用 nonlocal 关键字?

我不明白为什么我可以在这里使用系列变量:

但我不能在这里使用计数和总数变量(赋值前引用的变量):

只有当我使用这样的非本地关键字时它才有效:

这就是我使用 calculate_mean() 的方式