【发布时间】:2021-08-07 23:02:25
【问题描述】:
我注意到了导入的标准方法。
import module as m
我还注意到,可以在函数中导入模块,如下所示。
def someFunction():
import module as m
# do some things
return
我还注意到嵌套函数的作用域使得 内部函数变量具有仅限于该函数的局部作用域。
鉴于上述情况,我想(安全地)导入两个不同的模块但都具有相同的别名,如下所示:在此示例中,这两个模块是test_params 和test_params2,别名(两者通用,但嵌套)是p。
import test_params as p
print(p.x)
def some_code():
import test_params2 as p
print(p.x)
return
some_code()
如果 test_params 的 x=100 和 test_params2 的 x=10,那么预期结果将是:
100
10
我测试的时候是什么。
我的问题是:以上内容是否可以接受和理解(pythonic,没有冲突)还是有更好的方法?
【问题讨论】:
-
请注意,每次调用函数时都会执行导入,这在某些情况下可能不是最佳的。
标签: python import nested-function