擅长:python、mysql、java
<p>简单地说,没有。没有(好的,请看我最后的评论)方法可以做到这一点。最好的方法是将其分配给另一个较短的名称:</p>
<pre><code>s = simulation
s.addGroup("teapotarmy")
...
</code></pre>
<p>这还不算太糟,尽管我认为普通方法更具可读性。</p>
<p>另外,严格来说,你不能这样做是不正确的。您可以通过编程将所有的模拟方法分配给本地名称空间,但是,这样做会很混乱,我建议您不要这样做。</p>
<p>示例:</p>
<pre><code>from contextlib import contextmanager
import inspect
class some_class:
def test(self):
print("test!")
@contextmanager
def map_to_local(inst, locals):
methods = inspect.getmembers(inst, inspect.ismethod)
for name, method in methods:
locals[name] = method
yield
for name, method in methods:
del locals[name]
inst = some_class()
with map_to_local(inst, locals()):
test()
</code></pre>
<p>注意,这是相当脆弱的-你必须小心,做一些事情,如检查你没有覆盖值,检查值没有被删除之前,上下文管理器退出,等等。。。也不清楚发生了什么。</p>
<p>是的,有可能,不,你不应该这样做。你现在的密码很清楚。</p>