比方说,我在名为a的模块中有一个名为“hello”的函数,还有其他各种函数。是否有可能导入hello作为再见,以及其他符号?我想到的是这样的事情,但它是无效的:我可以导入为仅用于一个功能,其余导入它们是?
from a import hello as goodbye,*
比方说,我在名为a的模块中有一个名为“hello”的函数,还有其他各种函数。是否有可能导入hello作为再见,以及其他符号?我想到的是这样的事情,但它是无效的:我可以导入为仅用于一个功能,其余导入它们是?
from a import hello as goodbye,*
您可以从导入,然后绑定所需的新名称,并删除以前。类似于
from a import *
goodbye = hello
del hello
由于命名空间污染,明星进口通常不太好。
from a import *
from a import hello as goodbye
这不会使'hello'成为'hello'吗? – Geo
其实,第二次导入可能真的只是'你好=再见',因为'再见'我们已经导入。 –
@geo:这就是你得到的...明星进口通常是一个坏主意......所以你可能值得-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
但这并不能解决问题。在OP的例子中,来自模块的所有符号都被导入,只有其中一个被重命名。 –
编辑导入所有并重命名一个 –
这仍然留给原来的名称访问。 @Francesco提出了一个正确运行的解决方案。 –
from a import *
goodbye = hello
del hello
会是另一种方式来做到这一点。
'来自导入*'在**大多数情况下是个坏主意。它会彻底污染你当前的命名空间。 –