擅长:python、mysql、java
<p>这看起来是正确的方法:首先将<code>pd.read_sql('select * from zoo', connection)</code>的返回值赋给<code>a</code>,然后将<code>a</code>传递给<code>kettle.boo1</code>和<code>kettle.boo2</code>,这样可以确保只执行一次可能耗时的数据库IO。你知道吗</p>
<p>在传递list/dicts/dataframes等对象时,这个设计模式需要记住的一点是<code>kettle.boo1</code>是否会更改<code>a</code>中的值。如果是这样,<code>kettle.boo2</code>将接收修改后的<code>a</code>版本作为输入,这可能导致意外行为。你知道吗</p>
<p>下面是一个非常简单的例子:</p>
<pre class="lang-py prettyprint-override"><code>>>> def foo(x):
... x[0] = 'b'
...
>>> x = ['a'] # define a list of length 1
>>> foo(x) # call a function that modifies the first element in x
>>> print(x) # the value in x has changed
['b']
</code></pre>