擅长:python、mysql、java
<p><code>obj_a</code>和<code>obj_b</code>听起来很像状态。你知道吗</p>
<pre><code>class Thing:
def __init__(self):
# These could also be class attributes instead
# if they can be initialized when Thing is first
# defined.
self.obj_a = ...
self.obj_b = ...
def foo(self):
# use self.obj_a and self.obj_b
t = Thing()
t.foo()
</code></pre>
<p>也可以定义一个decorator来返回<code>obj_a</code>和<code>obj_b</code>附近的闭包。你知道吗</p>
<pre><code>def decorator(f):
obj_a = ...
obj_b = ...
def _():
# use obj_a and obj_b
return _
@decorator
def foo():
...
</code></pre>
<p>然而,简单地编写一个函数,返回两个对象,并让调用者使用他们喜欢的任何名称,这几乎不再是一个更灵活的方法了:</p>
<pre><code>def _get_a_b():
a = ...
b = ...
return a, b
def foo():
obj_a, obj_b = _get_a_b()
...
def bar():
a1, a2 = _get_a_b()
...
</code></pre>