擅长:python、mysql、java
<p>你的“最后一招”alernative当然更干净——如果你能在共享一个状态的扁平化方法中完成它,那就比嵌套函数更容易阅读代码来完成同样的工作。”“扁平比嵌套好”。你知道吗</p>
<p>除此之外,您正在创建一个具有命名空间的类。您可以简单地创建一个对象作为名称空间使用,它将作为名称空间使用—这更常见。唯一的问题是,如果您只是创建一个<code>object</code>本身的实例,它就不能作为名称空间使用,因为它没有<code>__dict__</code>,所以您不能自由地为它指定对象的属性。你知道吗</p>
<p>这就是为什么stdlib中的<code>types</code>模块中有一个名为<code>SimpleNamespace</code>的类正好适合这个用例。你知道吗</p>
<p>只要做:</p>
<pre><code>from types import SimpleNamespace
def f():
state = SimpleNamespace()
state.x = 0
...
</code></pre>
<p>(但前提是你不改变主意,选择更干净的基于类的解决方案)。你知道吗</p>