首页 > 其他分享 >动态导入模块

动态导入模块

时间:2023-07-25 22:00:32浏览次数:26  
标签:name list module 导入 模块 import 动态 class

1.创建一个简单的hello文件,里面只有一个类A,A属性为name

 

2.获取文件下面的未知类有哪些?

当只知道需要导入的类名称,但是不知道具体位置,如何动态导入?

import importlib.util
import inspect

# 文件夹下面有个脚本,下面只有一个类:
from test_import import hello
# 给定文件,获取对应目录下面的全部类==============================================
members = inspect.getmembers(hello)
classes = [member[1] for member in members if inspect.isclass(member[1])]
class_name_list = [cls.__name__ for cls in classes]
print(class_name_list)

# 假如知道类名称,但是不知道具体位置,动态导入演示==================================
module_name = class_name_list
module = importlib.import_module("test_import.hello")
class_obj = getattr(module, class_name_list[0])
print(class_obj.name)

 

标签:name,list,module,导入,模块,import,动态,class
From: https://www.cnblogs.com/zwx901323/p/17581164.html

相关文章

  • python动态加载py文件
    动态加载py文件的实现对于刚入行的小白来说,实现动态加载py文件可能是一个比较陌生的概念。不过不用担心,我会帮助你逐步了解和掌握这个过程。流程概述动态加载py文件的实现可以分为以下几个步骤:找到要加载的py文件的路径。动态加载py文件。调用加载的py文件中的函数或类。......
  • python动态规划
    Python动态规划(DynamicProgramming)动态规划是一种解决复杂问题的算法思想,其核心思想是将问题分解为子问题,并利用已解决的子问题的解来解决原始问题。动态规划常用于求解具有重叠子问题和最优子结构特性的问题。动态规划的基本思想动态规划的基本思想是分治法,即将问题分解为若干......
  • python的日志模块
    如何实现Python的日志模块作为一名经验丰富的开发者,我很高兴能够教会你如何实现Python的日志模块。在软件开发过程中,日志是非常重要的,它可以记录程序的运行状态、错误信息以及其他有用的调试信息。通过使用Python的日志模块,我们可以更好地管理和控制程序的日志输出。下面是整个实......
  • python导入上一级目录模块
    如何在Python中导入上一级目录的模块流程概述在Python中,要导入上一级目录的模块,可以通过修改系统路径来实现。具体流程如下:步骤操作步骤1获取当前文件所在路径步骤2获取上一级目录路径步骤3将上一级目录路径添加到系统路径中步骤4导入上一级目录的模块......
  • python导入机器学习包
    如何在Python中导入机器学习包作为一名经验丰富的开发者,你对Python编程语言和机器学习都非常熟悉。现在有一位刚入行的小白不知道如何在Python中导入机器学习包,你需要教会他。在本篇文章中,我将向你介绍整个导入机器学习包的流程,并提供每个步骤所需的代码和对代码的注释。导入机器......
  • Eclipse for c/c++ 导入外面项目没有信息打印出来
      eclipseforc/c++ 导入外面项目没有信息打印出来: 就是因为这个Binaries里面二进制文件太多了,不知道运行哪一个,造成无输出,全删或只保留一个再编译运行: 运行成功:thevalueofsin(2.0)is0.909297TheIDofthisthreadis:-1202372520155============gett......
  • FeignClient 动态获取nacos中的配置,线上更改后能热更新
    1.设置nacos变量在一个类中@Component@RefreshScope@ConfigurationProperties(prefix="testC")publicclassSupplierInfoRakuten{privateStringversion;publicStringgetVersion(){returnversion;}publicvoidsetVersion(Str......
  • Oracle-21C导入dmp文件
    1、前期工作具体参考该博文Windows操作系统安装Oracle数据库下载安装Oracle数据库图形管理工具2、连接和调整数据库环境2.1、以数据库管理员身份登录数据库++++++++++++++++++++++分割线++++++++++++++++++++++2.2、查询当前会话是否为CDB注意:Oracle12C以及更......
  • Python time模块和datetime模块,以及多线程
    1.time模块1.1time.time()函数time.time()函数返回自1970年1月1日0点到现在的秒数。纪元时间戳可以用于剖析代码,也就是测量一段代码的运行时间。如果在代码块开始时调用time.time(),并在结束时再次打开,就可以用第二个时间戳减去第一个,得到这两次调用之间经过的时间。......
  • 动态代理的几种方式
    JDK动态代理:是Java标准库提供的一种动态代理实现方式,基于接口生成代理对象。使用Proxy类和InvocationHandler接口来创建代理对象,被代理的类必须实现接口。CGlib动态代理:使用CGLib库实现,通过生成目标类的子类来创建代理对象。不需要目标类实现接口,可以直接代理普通类。区别:JDK代......