2011-06-23 60 views
2

比方说,我在名为a的模块中有一个名为“hello”的函数,还有其他各种函数。是否有可能导入hello作为再见,以及其他符号?我想到的是这样的事情,但它是无效的:我可以导入为仅用于一个功能,其余导入它们是?

from a import hello as goodbye,* 
+0

'来自导入*'在**大多数情况下是个坏主意。它会彻底污染你当前的命名空间。 –

回答

7

您可以从导入,然后绑定所需的新名称,并删除以前。类似于

from a import * 
goodbye = hello 
del hello 

由于命名空间污染,明星进口通常不太好。

2
from a import * 
from a import hello as goodbye 
+1

这不会使'hello'成为'hello'吗? – Geo

+1

其实,第二次导入可能真的只是'你好=再见',因为'再见'我们已经导入。 –

+1

@geo:这就是你得到的...明星进口通常是一个坏主意......所以你可能值得-1这个问::) –

1

下一页两条线正常工作对我来说:

from core.commonActions import click_on_toolbar_tool, wait_toolbar_tool_enabled as x 
from core.commonActions import wait_toolbar_tool_enabled as x, click_on_toolbar_tool 

,或者您需要导入的所有功能,你可以使用:

from core.commonActions import * 
from core.commonActions import wait_toolbar_tool_enabled as x 

OR:

from core.commonActions import * 
x = wait_toolbar_tool_enabled 

,如果你想招呼不要超过可用的,那么干脆:

from core.commonActions import * 
x = wait_toolbar_tool_enabled 
wait_toolbar_tool_enabled = None # or del wait_toolbar_tool_enabled 
+0

但这并不能解决问题。在OP的例子中,来自模块的所有符号都被导入,只有其中一个被重命名。 –

+0

编辑导入所有并重命名一个 –

+0

这仍然留给原来的名称访问。 @Francesco提出了一个正确运行的解决方案。 –

1
from a import * 
goodbye = hello 
del hello 

会是另一种方式来做到这一点。

相关问题