zoukankan      html  css  js  c++  java
  • Python3 动态导入模块的两种方式

    动态导入模块就是只知道str类型的模块名字符串,通过这个字符串导入模块

    需要导入的模块:

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    # Author:CarsonLi
    
    class Ccc(object):
        def __init__(self,name):
            self.name=name
    

    目录结构:

    第一种方式:python解释器内部使用,不建议用

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    # Author:CarsonLi
    '''Python 解释器内部动态导入方式'''
    module_name='import_lib.metaclass' #模块名的字符串
    import_lib=__import__(module_name) #这是解释器自己内部用的
    '''import_lib代表的其实是这个模块,而不是下面的metaclass'''
    
    c=import_lib.metaclass.Ccc("Bert")#调用下面的方法
    print(c.name) #运行结果:Bert
    

    第二种方式:与上面效果一样,官方建议用这个

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    # Author:CarsonLi
    '''官方建议用这个'''
    import importlib
    module_name='import_lib.metaclass' #模块名的字符串
    metaclass=importlib.import_module(module_name) #导入的就是需要导入的那个metaclass
    c=metaclass.Ccc("Bert") #调用下面的方法
    print(c.name)  #运行结果:Bert
    

      

  • 相关阅读:
    -webkit-line-clamp 多行文字溢出...
    整理一些知识碎片...
    localstorage sessionstorage和cookie的区别
    数据结构 --- Set
    Iterator(遍历器)
    ES6数组方法 -- reduce()
    ES6 -- 展开运算符
    Centos7 + Oracel 18c
    Mysql 查询返回大量数据导致内存溢出
    github的安装和使用
  • 原文地址:https://www.cnblogs.com/bert227/p/9786784.html
Copyright © 2011-2022 走看看