python定义一个类完了执行啥都没有_我想在python用exec动态执行某些语句,动态定义一个类并随后调用这个类,但是出现了问题。...

533e4ce900010ae802000200-100-100.jpg

慕尼黑8549860

首先“exec”是不被推荐的方法,因为它会带来一些问题:

一些基于__module__属性的模块会失败,比如pickle,inspect,pydoc等

内存泄漏

namespace和module shutdown behavior issue

关于这几点问题的详细描述,可以参考:http://lucumr.pocoo.org/2011/...

既然你硬要这么做的话,下面代码可以提供一点参考:

tester.py

# encoding: utf-8

# tester.py

import actor

content = """

class MyClass:

def __init__(self):

self.name = None

self.age = None

def do():

return MyClass()

"""

vars = {}

code = compile(content, '', 'exec')

m_cls = actor.execute(code, vars, vars)

print m_cls.name

actor.py

# encoding: utf-8

# actor.py

def execute(content, m_globals, m_locals):

exec(content, m_globals, m_locals)

return m_globals['do']()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值