Python中如何实现条件导入?检测作用域是否已存在Segmenter
检测对象存在性后再执行导入
要实现只有当Segmenter不在当前作用域时才执行导入,可以通过检查命名空间字典来实现:
全局作用域场景
如果是在模块全局范围做判断,用globals()字典检查:
if 'Segmenter' not in globals(): from .segmenter import Segmenter
局部作用域场景
如果是在函数等局部代码块内,改用locals()字典:
def process_data(): if 'Segmenter' not in locals(): from .segmenter import Segmenter # 后续使用Segmenter处理数据
额外说明
Python本身的导入机制会自动缓存已导入的模块,重复执行导入语句不会重复加载模块代码。只有在一些特殊的动态导入场景下,才需要手动做这个存在性判断。
内容的提问来源于stack exchange,提问作者marlon
相关产品推荐
相关产品推荐

