导入同名函数会覆盖吗?
Importing functions of same name will overwrite?
我想从 2 个不同的文件导入 2 个函数,其中文件名称不同,但函数名称相同。我想执行第一个函数,然后导入下一个函数并执行它。
例如:
from file1 import func
func()
from file2 import func
func()
我的问题是在第二次调用func时,函数是否会被file2中的函数替换?还是会继续使用从 file1 导入的文件?
这样覆盖它是否安全,或者如果函数命名不同则更好?
如果您执行 from foo import func
然后稍后在同一模块中
from bar import func
,那么你就简单地定义了两次func
。但它只能指向一个值,而且那将是最近的一个。一旦你已经存在,第一次导入也可能从未存在过
完成了第二个。
为避免这种情况,您可以通过在导入时分配不同的名称来进行导入:
from foo import func as funcFoo
或者您可以只导入模块然后使用:
foo.func
和 bar.func
我想从 2 个不同的文件导入 2 个函数,其中文件名称不同,但函数名称相同。我想执行第一个函数,然后导入下一个函数并执行它。
例如:
from file1 import func
func()
from file2 import func
func()
我的问题是在第二次调用func时,函数是否会被file2中的函数替换?还是会继续使用从 file1 导入的文件?
这样覆盖它是否安全,或者如果函数命名不同则更好?
如果您执行 from foo import func
然后稍后在同一模块中
from bar import func
,那么你就简单地定义了两次func
。但它只能指向一个值,而且那将是最近的一个。一旦你已经存在,第一次导入也可能从未存在过
完成了第二个。
为避免这种情况,您可以通过在导入时分配不同的名称来进行导入:
from foo import func as funcFoo
或者您可以只导入模块然后使用:
foo.func
和 bar.func