zoukankan      html  css  js  c++  java
  • Python Importlib模块与__import__详解

    Importlib模块与__import__都可以通过过字符串来导入另外一个模块,但在用法上和本质上都有很大的不同。

    以一个例子为证:

    以下为我的工程目录结构:

    lib/test.py:

    name = "Jack"
    
    def getName():
      print(name)
      return name

    demo.py:

    name = "Amy"
    
    def getName():
        print(name)
        return name

    Importlib模块的例子:

    testImportlib.py:

    import importlib
    
    mName = "lib.test"
    module = importlib.import_module(mName)
    module.getName()

    Importlib是python的一个库,通过导入importlib,调用import_module()方法,传入用户想要获取的模块对应的路径字符串,即可获取一个,模块module,module可以调用这个test模块下的所有属性和方法。

    运行截图:

    __import__的例子:
    __import__是python的一个内置方法,直接调用__import__()即可获取一个模块.

    testImport.py:

    mName = "demo"
    
    module = __import__(mName)
    module.getName()

    此时调用的是相同目录下的demo模块,可顺利地获取这个模块,那么当不再同一个目录下呢?

    修改testImport.py:

    mName = "lib.test"
    
    module = __import__(mName)
    module.getName()

    此时的运行结果为:

    出错提示为,当前的模块'lib'没有getName()这个方法,因此没有正确获取到test模块。

    继续修改此文件:

    mName = "lib.test"
    
    module = __import__(mName,fromlist = ('test',))
    module.getName()

    运行结果为:

    当加上fromlist属性即可正确获取。

  • 相关阅读:
    java DES转C#DES加密解密
    PIE SDK影像格式转换
    PIE SDK位深转换
    PIE SDK存储格式转换
    PIE SDK栅格生成等值线、面
    PIE SDK反距离权重插值算法
    PIE SDK克里金插值法
    PIE SDK热力图
    PIE SDK Alpha通道数据渲染
    PIE SDK 多数据源的复合数据集加载
  • 原文地址:https://www.cnblogs.com/suguangti/p/11043296.html
Copyright © 2011-2022 走看看