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 相关文章推荐
Python随机生成数模块random使用实例
Apr 13 Python
学习Python selenium自动化网页抓取器
Jan 20 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
python爬取网页内容转换为PDF文件
Jul 28 Python
Python和Go语言的区别总结
Feb 20 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
Jun 19 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 Python
Python读入mnist二进制图像文件并显示实例
Apr 24 Python
Python内置函数property()如何使用
Sep 01 Python
python matplotlib库的基本使用
Sep 23 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 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调用数据库的存贮过程
2006/10/09 PHP
第十一节 重载 [11]
2006/10/09 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
js下用层来实现select的title提示属性
2010/02/23 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
js实现日历与定时器
2017/02/22 Javascript
原生js实现验证码功能
2017/03/16 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
Python中实现常量(Const)功能
2015/01/28 Python
微信跳一跳游戏python脚本
2020/04/01 Python
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
python程序需要编译吗
2020/06/19 Python
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
小学安全教育材料
2014/02/17 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
市场部经理岗位职责
2014/04/10 职场文书
学生请假条格式
2014/04/11 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
上课说话检讨书
2015/01/27 职场文书