擅长:python、mysql、java
<p>我认为最好是重新构造代码,这样就不必这样做,或许可以这样:</p>
<pre><code># File mylib.py
class MyLib():
#...
def assign1(self):
return hello1, goodbye1
#likewise for assign2
</code></pre>
<p>对于主剧本。。。你知道吗</p>
<pre><code># File myscript.py
import mylib
l = mylib.MyLib()
hello, goodbye = l.assign1()
</code></pre>
<hr/>
<p>如果<em>真的</em>想更改父命名空间中的内容,那么一种方法可能是:</p>
<pre><code># File mylib.py
class MyLib():
def __init__(self, funcs): #funcs should be a list
self.funcs = funcs
#...
def assign1(self):
# This should assign self.hello1() and self.goodbye1()
# to "parent" namespace as hello() and goodbye()
self.funcs[0].__code__ = self.hello1.__code__
self.funcs[1].__code__ = self.goodbye1.__code__
#likewise for assign2
</code></pre>
<p>对于主剧本。。。你知道吗</p>
<pre><code># File myscript.py
import mylib
hello = lambda s:s
goodbye = lambda s:s
l = mylib.MyLib([hello, goodbye])
l.assign1()
</code></pre>
<p>然而,我想说的是,这给我的印象更像是……“肮脏”。就像,这不是很干净或者很像Python。对于未来/更大的项目,请使用第一种方法。你知道吗</p>