python动态加载包的方法小结


Posted in Python onApril 18, 2016

本文实例总结了python动态加载包的方法。分享给大家供大家参考,具体如下:

动态加载模块有三种方法

1. 使用系统函数__import_()

stringmodule = __import__('string')

2. 使用imp 模块

import imp 
stringmodule = imp.load_module('string',*imp.find_module('string'))
imp.load_source("TYACMgrHandler_"+app.upper(), filepath)

3. 用exec

import_string = "import string as stringmodule"
exec import_string

变量是否存在

1. hasattr(Test,'t')
2. 'var'   in   locals().keys()
3. 'var'   in   dir()
4. vars().has_key('s')

动态增加属性

class Obj(object):
  pass
def main():
  list=["a","b", "c"]
  for i inrange(1,len(list),2):
    Obj = type('Obj',(),{list[i]:lambdaself,s:obj.__setattr__(s.split(" = ")[0],s.split(" = ")[1])})
  obj =Obj()
  for i inrange(0,len(list),2):
    obj.__setattr__(list[i],list[i])  
  obj.a =1
  obj.b("a =2")
  obj.b("c =3")
  printobj.a
  printobj.c
if __name__ == '__main__':
  main()

动态载入包:

def test(s,e):
  print s
  print e
class C():
  def __init__(self,name):
    print name
  def test(self):
    print 'class!!!'

加载器代码:

class Dynload():
  def __init__(self,package,imp_list):
    self.package=package
    self.imp=imp_list
  def getobject(self):
    return __import__(self.package,globals(),locals(),self.imp,-1)
  def getClassInstance(self,classstr,*args):
    return getattr(self.getobject(),classstr)(*args)  
  def execfunc(self,method,*args):
    return getattr(self.getobject(),method)(*args)
  def execMethod(self,instance,method,*args):
    return getattr(instance,method)(*args)
#Test:
dyn=Dynload('util.common',['*'])
ins=dyn.getClassInstance('C','gao')
dyn.execMethod(ins,'test')
dyn.execfunc('test','Hello','function!')

根据名字加载指定文件

def loadapp(self, app):
    filepath="mgr/"+app+".py"
    if os.path.exists(filepath):
      imp.load_source("TYACMgrHandler_"+app.upper(), filepath)
//修改了app.py,从新调用这个函数,新的代码自动生效

根据名字调用对应方法

return getattr(self, op)(args.get("port"), args) //op="start" args=dict
getattr(self, self.request.method.lower())(*args, **kwargs)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Windows系统下安装Python的SSH模块教程
Feb 05 Python
Python缩进和冒号详解
Jun 01 Python
Python算法应用实战之栈详解
Feb 04 Python
Python 操作MySQL详解及实例
Apr 30 Python
利用Python读取文件的四种不同方法比对
May 18 Python
python实现单链表的方法示例
Sep 03 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
python 19个值得学习的编程技巧
Aug 15 Python
Python+OpenCV检测灯光亮点的实现方法
Nov 02 Python
PyTorch 如何自动计算梯度
May 23 Python
python实现按行切分文本文件的方法
Apr 18 #Python
Python获取linux主机ip的简单实现方法
Apr 18 #Python
Python实现递归遍历文件夹并删除文件
Apr 18 #Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 #Python
Python出现segfault错误解决方法
Apr 16 #Python
Python判断值是否在list或set中的性能对比分析
Apr 16 #Python
python中zip()方法应用实例分析
Apr 16 #Python
You might like
php正则校验用户名介绍
2008/07/19 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
用Juery网页选项卡实现代码
2011/06/13 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
从零学python系列之从文件读取和保存数据
2014/05/23 Python
Python显示进度条的方法
2014/09/20 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
个人自我鉴定写法
2013/11/30 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
车队安全员岗位职责
2015/02/15 职场文书
个性与发展自我评价
2015/03/06 职场文书
获奖感言怎么写
2015/07/31 职场文书
导游词之阆中古城
2019/12/23 职场文书
原生JS实现分页
2022/04/19 Javascript
Python开发简易五子棋小游戏
2022/05/02 Python
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS