Python 静态导入与动态导入的实现示例

 更新时间:2024年05月16日 08:54:43   作者:要努力学习鸭  
Python静态导入和动态导入是指导入模块或模块内部函数的两种方式,本文主要介绍了Python 静态导入与动态导入的实现示例,具有一定的参考价值,感兴趣的可以了解一下

1.静态导入

静态导入是指在代码的顶部或模块开始部分显式地写出导入语句。模块名在编写代码时就已经确定了,并且在解释器运行到该语句时立即进行导入。这是最常用的导入方法。

import math
print(math.sqrt(9))

静态导入方式有部分导入、别名导入、相对导入、导入所有内容等。

#部分导入:
from math import sqrt, pi

#别名导入  
import math as mt

#相对导入 (导入上一层目录中的模块)
from .. import module1  

#导入所有内容
from math import *

2.动态导入

动态导入(运行时导入)是指在程序运行的过程中,根据某些条件动态决定导入哪个模块。这种方式使用的是 Python 提供的importlib模块,可以让程序在运行时决定导入哪个模块。

动态导入的模块名称可以是变量(如下方module_name),可以根据不同的条件动态变化。

import importlib

module_name = "math" 
math_module = importlib.import_module(module_name)

print(math_module.sqrt(9))

除了使用importlib进行动态导入,还有条件导入、延迟导入、通过_import_导入等。

#条件导入,通常用于处理可选依赖或兼容性问题
try:
    import cPickle as pickle
except ImportError:
    import pickle

#延迟导入,在函数或方法内部导入模块。可以减少程序启动时的开销,适用模块很大且在特定情况下使用时。
def complex_function():
    import math
    return math.sqrt(9)
print(complex_function())

#通过__import__导入,一个内置函数,以更底层的方式导入模块
module_name = "math"
math_module = __import__(module_name)
print(math_module.sqrt(9))

3.性能与使用场景对比

性能:
静态导入:所有导入都在程序开始时完成,导入过程一次性完成,性能开销低,也可以减少运行延迟。
动态导入:每次动态导入都需要进行模块的查找和加载,可能会增加一些性能开销以及运行时延迟;模块在实际需要时才导入,可以减少启动时间和内存占用。
使用场景:
静态导入:明确知道需要哪些模块时,以及需要高性能、低延迟的场景。
动态导入:需要高灵活性和动态行为时,如插件系统、动态配置系统、根据用户输入选择不同功能等场景。例如一个插件系统,不同的插件名称是在运行时由用户输入的:

import importlib

def load_plugin(plugin_name):
    try:
        plugin_module = importlib.import_module(plugin_name)
        plugin_module.run()
    except ImportError:
        print(f"Error! Plugin {plugin_name} not found.")

plugin_name = input("Please enter the plugin name: ")
load_plugin(plugin_name)

到此这篇关于Python 静态导入与动态导入的实现示例的文章就介绍到这了,更多相关Python 静态导入与动态导入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Python学习笔记之抓取某只基金历史净值数据实战案例

    Python学习笔记之抓取某只基金历史净值数据实战案例

    这篇文章主要介绍了Python学习笔记之抓取某只基金历史净值数据案例,结合具体实例形式分析了Python基于selenium库的数据抓取及mysql交互相关实现技巧,需要的朋友可以参考下
    2019-06-06
  • Python无参装饰器的实现方案及优化

    Python无参装饰器的实现方案及优化

    装饰器(Decorators)是 Python 的一个重要部分,所谓装饰器就是闭包函数的一种应用场景,这篇文章主要给大家介绍了关于Python无参装饰器的相关资料,需要的朋友可以参考下
    2021-08-08
  • Python标准异常和异常处理详解

    Python标准异常和异常处理详解

    这篇文章主要介绍了Python标准异常和异常处理详解,本文讲解了python标准异常、什么是异常、异常处理的多种方法和实例等内容,需要的朋友可以参考下
    2015-02-02
  • Elasticsearches的集群搭建及数据分片过程详解

    Elasticsearches的集群搭建及数据分片过程详解

    这篇文章主要为大家介绍了Elasticsearches的集群搭建及数据分片过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • Python中的for循环详情

    Python中的for循环详情

    这篇文章主要介绍了Python中的for循环,for语句实际上解决的是循环问题。在很多的高级语言中都有for循环(for loop)。下面就来简单给大家介绍Python中的for循环的相关资料,需要的朋友可以参考一下
    2021-10-10
  • python+selenium实现自动化百度搜索关键词

    python+selenium实现自动化百度搜索关键词

    在本篇文章里我们给大家分享了一篇关于python+selenium实现自动化百度搜索关键词的实例文章,需要的朋友们可以跟着操作下。
    2019-06-06
  • 给Python入门者的一些编程建议

    给Python入门者的一些编程建议

    这篇文章主要介绍了给Python入门者的一些编程建议,包括对集合初始化和GIL理解等一些需要注意的地方,需要的朋友可以参考下
    2015-06-06
  • Python实现读取并写入Excel文件过程解析

    Python实现读取并写入Excel文件过程解析

    这篇文章主要介绍了Python实现读取并写入Excel文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • python 实现求解字符串集的最长公共前缀方法

    python 实现求解字符串集的最长公共前缀方法

    今天小编就为大家分享一篇python 实现求解字符串集的最长公共前缀方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python操作excel文件并输出txt文件的实例

    python操作excel文件并输出txt文件的实例

    今天小编就为大家分享一篇python操作excel文件并输出txt文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07

最新评论