zoukankan      html  css  js  c++  java
  • 动态导入模块:__import__、importlib、动态导入的使用场景


    相关内容:

    • __import__
    • importlib
    • 动态导入的使用场景

    首发时间:2018-02-23 16:06


    __import__:

    功能:

    • 是一个函数,可以在需要的时候动态导入模块

    使用:

    • __import__(模块名)
    • 但对于多级目录,只会导入第一级image
    • 目录结构:image
    • imageimage
    mo1=__import__("des")
    mo2=__import__("child.child")
    mo3=__import__("child")
    
    print(mo1,mo2,mo3)#mo3与mo2相同
    
    #同级目录使用模块对象来调用
    mo1.B()
    mo1.fun2()
    
    #对于目录下的,动态导入只会导入第一级目录
    mo2.child.A()#虽然没有具体定义类体,但无错就是成功
    mo2.child.fun1()
    mo3.child.fun1()


    importlib:

    介绍:

    • 是一个模块,可以进行动态导入模块

    用法:

    • importlib.import_module("模块名")
    import importlib
    mo1= importlib.import_module('des')
    mo2= importlib.import_module('child.child')
    print(mo1,mo2)#mo2直接到child.child
    
    des_B= mo1.B()
    mo1.fun2()
    
    mo2.fun1()

    动态导入模块的使用场景:

    • 动态切换模块
    • 使用反射判断是否有对应类、方法,无则设置
    import importlib
    mo3= importlib.import_module('child')
    def func4():
        print(" run in func4")
    
    if hasattr(mo3,"child1"):
        print("yes")
        c=getattr(mo3,"child")
    else: #没有则设置
        setattr(mo3,"func4",func4)
    
    mo3.func4()
    • 其他。。。

  • 相关阅读:
    C#中remoting和webservice的区别
    Nhibernate了解(转载)
    深入浅出JSON
    Asp.net页面传值总结(转载)
    .Net ViewState的实现(转载)
    asp.net数据绑定之Eval和Bind区别
    PetShop数据库解读
    .Net 2.0 缓存使用(转载)
    ASP.NET中EVAL用法大全
    a:hover和a:visited书写顺序的重要性
  • 原文地址:https://www.cnblogs.com/progor/p/8462472.html
Copyright © 2011-2022 走看看