Python 动态导入对象,importlib.import_module()的使用方法
背景
一个函数运行需要根据不同项目的配置,动态导入对应的配置文件运行。
解决
文件结构
a #文件夹 │a.py │__init__.py b #文件夹 │b.py │__init__.py ├─c#文件夹 │c.py │__init__.py # c.py 中内容 args = {'a':1} class C: def c(self): pass
目的
向a模块中导入c.py 中的对象
解决方案
a.py
import importlib params = importlib.import_module('b.c.c') #绝对导入 params_ = importlib.import_module('.c.c',package='b') #相对导入 # 对象中取出需要的对象 params.args #取出变量 params.C #取出class C params.C.c #取出class C 中的c 方法
以上就是动态函数import_module的使用方法。
这篇Python 动态导入对象,importlib.import_module()的使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python引用(import)文件夹下的py文件的方法
Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下执行.要包含目录里的文件,PHP中只需要给对路径就OK.Python中则不同,下面来看看这个例子. 目录结构: a.py 要 import dir目录下的 b.py 文件.a.py代码如下: 复制代码 代码如下: # coding=utf-8 "import dir 目录下的 b.py 文件" impo
-
Python中标准模块importlib详解
1 模块简介 Python提供了importlib包作为标准库的一部分.目的就是提供Python中import语句的实现(以及__import__函数).另外,importlib允许程序员创建他们自定义的对象,可用于引入过程(也称为importer). 什么是imp? 另外有一个叫做imp的模块,它提供给Python import语句机制的接口.这个模块在Python 3.4中被否决,目的就是为了只使用importlib. 这个模块有些复杂,因此我们在这篇博文中主要讨论以下几个主题: •动态引入
-
Python动态导入模块的方法实例分析
本文实例讲述了Python动态导入模块的方法.分享给大家供大家参考,具体如下: 一.正常导入模块 正常模块导入方式: import module(模块路径) 同时导入多个模块: import os,sys,socket 二.动态导入模块 动态导入模块允许我们通过字符串形式来导入模块 2.1 __import__函数,接受一个字符串参数 import os, sys my_sys = __import__('sys') my_os = __import__('os') print(sys.vers
-
Python中动态获取对象的属性和方法的教程
首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding: UTF-8 import sys # 模块,sys指向这个模块对象 import inspect def foo(): pass # 函数,foo指向这个函数对象 class Cat(object): # 类,Cat指向这个类对象 def __init__(self, name='kitty'): self.name = name def sayHi(self): # 实例方法,sayHi指向这个方法对象,使用类或实例.
-
Python 动态导入对象,importlib.import_module()的使用方法
背景 一个函数运行需要根据不同项目的配置,动态导入对应的配置文件运行. 解决 文件结构 a #文件夹 │a.py │__init__.py b #文件夹 │b.py │__init__.py ├─c#文件夹 │c.py │__init__.py # c.py 中内容 args = {'a':1} class C: def c(self): pass 目的 向a模块中导入c.py 中的对象 解决方案 a.py import importlib params = importlib.import_m
-
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
本文实例讲述了Python动态导入模块:__import__.importlib.动态导入的使用场景.分享给大家供大家参考,具体如下: 相关内容: __import__ importlib 动态导入的使用场景 首发时间:2018-02-23 16:06 __import__: 功能: 是一个函数,可以在需要的时候动态导入模块 使用: __import__(模块名) 但对于多级目录,只会导入第一级 目录结构: mo1=__import__("des") mo2=__import__(&q
-
python 动态导入模块实现模块热更新的方法
最近有个部署需求,需要读取py文件格式的配置项,我的实现思路是把配置文件解析到内存中.主要使用两种方法: importlib.import_module types.ModuleType 方法1.使用 import_module 动态导包 先来看看import module使用方法. 主要有两个参数: package:包名 name:模块名 返回 module 对象 现在开始实现动态导包,成功读取到配置项. import importlib settings = importlib.import
-
Python动态导入模块和反射机制详解
一.前言 何谓动态导入模块,就是说模块的导入可以根据我们的需求动态的去导入,不是像一般的在代码文件开头固定的导入所需的模块. 何谓反射机制,利用字符串的形式在模块或对象中操作(查找/获取/删除/添加)成员. 下面进入具体实例介绍环节.先创建一个示例文件example.py,简单写入几个加减乘除函数,如下,方便下文讲解使用. flag = 1 # 此变量在介绍反射机制时会用到 def my_sum(a, b): return a + b def my_sub(a, b): return a - b
-
以SortedList为例详解Python的defaultdict对象使用自定义类型的方法
目录 写在前面 第一种方法: 封装成函数 第二种方法: 类封装 写在前面 最近写周赛题, 逃不开的一种题型是设计数据结构, 也就是第三题, 做这种题需要的就是对语言中的容器以及常用排序查找算法的掌握, 而我只熟悉了最基本的一些方法, 做起这些题来总是超时… 为了搞定这些题, 我决定学习一下大佬们的做法, 特别是优先队列的方法维护有序容器以及有序列表等容器, 这些都在Python中封装好了, 用起来很是方便, 但是采用defaultdict的时候, 其缺省数据类型常常需要与题目给出的特定结构匹配,
-
JS动态给对象添加事件的简单方法
WEB项目中,我们常常会碰到要动态对相应的对象添加事件,如下,有id="txtPrice"的文本框控件: <div> <input type="text" id="txtPrice" name = "txtPrice" value = "0"/> <div> 现在我们为其动态添加一事件,JS核心代码如下: document.getElementById("txt
-
Python字典数据对象拆分的简单实现方法
本文实例讲述了Python字典数据对象拆分的简单实现方法.分享给大家供大家参考,具体如下: 有朋友问了下问题: {'A1;A2': 'B','A3': 'C'}这种数据结构要拆解成{'A1':'B', 'A2': 'B', 'A3': 'C'},要如何实现? 这种问题,如果用普通的for循环来实现的话,还是有点麻烦: >>> dct = {'A1;A2': 'B','A3': 'C'} >>> tmp = {} >>> for k,v in dct.i
-
Python 中导入csv数据的三种方法
Python 中导入csv数据的三种方法,具体内容如下所示: 1.通过标准的Python库导入CSV文件: Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组,用来训练算法模型.: from csv importreader import numpy as np filename=input("请输入文件名: ") withopen(filename,'rt',encoding='
-
Python之字典对象的几种创建方法
第一种方式:使用{} firstDict = {"name": "wang yuan wai ", "age" : 25} 说明:{}为创建一个空的字典对象 第二种方式:使用fromkeys()方法 second_dict = dict.fromkeys(("name", "age")) #value使用默认的None,也可以指定value值 说明:fromkeys()是dict类的一个staticmeth
随机推荐
- Angular4实现鼠标悬停3d倾斜效果
- js中将字符串转换成json的三种方式
- C#根据Word模版生成Word文件
- Ruby中变量引用时的一些注意点
- Python的语言类型(详解)
- php猴子选大王问题解决方法
- PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
- ASP语言实现对SQL SERVER数据库的操作
- MySql 5.7.14 服务没有报告任何错误的解决方法(推荐)
- javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
- javascript hashtable实现代码
- yii框架通过控制台命令创建定时任务示例
- Bootstrap导航条学习使用(一)
- 有关Ajax中get和post的使用问题
- 微信小程序 教程之列表渲染
- jQuery移除tr无效的解决方法(tr是动态添加)
- JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
- C#中timer定时器用法实例
- asp.net操作xml增删改示例分享
- Android CalendarView,DatePicker,TimePicker,以及NumberPicker的使用