• 动态导入模块:__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()
    • 其他。。。

  • 相关阅读:
    iOS面试题03-UI控件
    iOS面试题02-数据存储
    iOS面试题01-多线程网络
    ios开发学习笔记(1)
    搭建Myeclipse下Java Web开发环境
    iOS开发-UI (十二)StoryBoard
    iOS开发-UI (十一) UITabBarController
    iOS开发-UI (十)UIScrollView 和 UIPageControl使用
    iOS开发-UI (九)UITableView搜索功能
    iOS开发-UI (八)TableView
  • 原文地址:https://www.cnblogs.com/progor/p/8462472.html
Copyright © 2020-2023  润新知