热门关键字:  ubuntu  分区  函数  linux系统进程  Fedora

load python script from memory stream

来源: 作者: 时间:2008-06-24 Tag: 点击:
没有什么技术含量。T_T 真简单

from parser import *

class MemoryLoader:
def __init__(self):
self.allFuncs = {}

def loadFromStream(self, inStream, fileName = "<stream>"):
ast = suite(inStream)
ldist = {}
eval(ast.compile(fileName), ldist)
if not ldist.has_key('__exports__'):
raise "'%s' must has __exports__ value"%fileName

for f in ldist['__exports__']:
fo = ldist[f]
self.allFuncs[f] = fo

def call(self, name, *args, **kwds):
self.allFuncs[name](*args, **kwds)


def test():
loader = MemoryLoader()
loader.loadFromStream("""__exports__=['foo']\ndef foo(str):\n\tprint str[::-1]""")
loader.call('foo','hello')

if __name__ == '__main__':
test()
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
栏目列表