首页 > 解决方案 > 导入同名函数会覆盖吗?

问题描述

我想从 2 个不同的文件中导入 2 个函数,这些文件具有不同的名称,但这些函数将具有相同的名称。我想执行第一个函数,然后导入下一个函数并执行它。

例如:

from file1 import func

func()

from file2 import func

func()

我的问题是,在第二次调用 func 时,该函数是否会被 file2 中的函数替换?还是仍会使用从 file1 导入的那个?

像这样覆盖它是否安全,或者如果函数名称不同会更好?

标签: pythonpython-3.xfunctionimportpython-import

解决方案


如果你这样做from foo import func,然后在同一个模块 from bar import func中,那么你只是定义func了两次。但它只能指向一个值,那将是最近的一个。一旦你完成了第二个导入,第一个导入可能就不会存在。

为避免这种情况,您可以通过在导入时指定不同的名称来进行导入:

from foo import func as funcFoo

或者您可以只导入模块,然后使用:

foo.funcbar.func


推荐阅读