擅长:python、mysql、java
<p>在Python中,可以改变函数参数,但不能直接在调用者的作用域中重新绑定它们。您可以传递实例成员名称:</p>
<pre><code>def foo(self, inputname):
setattr(self, inputname, #some stuff)
def foo2(self):
self.foo('var1')
self.foo('var2')
</code></pre>
<p>或者,如果<code>self.var1</code>是一个可变对象,例如,您可以编写的列表:</p>
<pre><code>def foo (self, input):
input[:] = #some stuff
def foo2(self):
self.foo(self.var1)
self.foo(self.var2)
</code></pre>
<p>这之所以有效,是因为您正在对list对象进行变异(通过分配给一个完整的片),而不是重新绑定它(一个空的<code>=</code>)。你知道吗</p>