python動態載入包

2021-06-27 23:37:04 字數 2580 閱讀 4583

分類: python

2011-09-14 22:18

1684人閱讀收藏 

舉報python

import

string

list

class

module

動態載入模組有三種方法

1,使用系統函式__import_()

stringmodule = __import__('string')

2,使用imp 模組

import imp 

stringmodule = imp.load_module('string',*imp.find_module('string'))

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',(),)

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

defgetobject(

self

):return

__import__(

self

.package

,globals

(),locals

(),self

.imp

,-1)

defgetclassinstance(

self

,classstr,*

args

):return

getattr(

self

.getobject

(),classstr)(

*args)   

defexecfunc(

self

,method,*

args

):return

getattr(

self

.getobject

(),method)(

*args)

defexecmethod(

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!')

根據名字載入指定檔案

根據名字呼叫對應方法

return getattr(self, op)(args.get("port"), args) //op="start"args=dict

getattr(self, self.request.method.lower())(*args, **kwargs)

python動態載入包

動態載入模組有三種方法 1,使用系統函式 import stringmodule import string 2,使用imp 模組 import imp stringmodule imp.load module string imp.find module string 3,使用exec impor...

python動態載入包的方法小結

動態載入模組有三種方法 1.使用系統函式 import stringmodule import 程式設計客棧string 2.使用imp 模組 import imp stringmodule imp.load module string imp.find module string imp.load...

python非同步載入和動態 Vue動態載入非同步元件

背景 目前我們專案都是按元件劃分的,然後各個元件之間封裝成產品。目前都是採用iframe直接巢狀頁面。專案中我們還是會碰到一些通用的元件跟業務之間有通訊,這種情況下iframe並不是最好的選擇,iframe存在跨域的問題,當然是postmessage還是可以通訊的,但也並非是最好的。目前有這麼乙個場...