首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从对象重建源

从对象重建源
EN

Stack Overflow用户
提问于 2016-03-22 07:14:40
回答 2查看 44关注 0票数 1

我想从实际的python对象中抓取代码。这是AST和parse相反的想法,我在内存中有一个对象,我想重新创建源代码。我不想深入讨论过多的字节代码,我只想要一个对象代码的表示形式:

代码语言:javascript
复制
In [24]: from django.apps import apps
In [25]: x= apps.get_app('accounts')

In [26]: x
Out[26]: <module 'mysite.accounts.models' from '/home/cchilders/work_projects/mysite/mysite/accounts/models.py'>

In [27]: x.
x.BusinessUnit                       x.models           

In [35]: bizunit = x.BusinessUnit

In [36]: type(bizunit)
Out[36]: django.db.models.base.ModelBase

import something

bizunit_code = something.something(bizunit)

我想要所有模型的源代码,但使用ast似乎太麻烦了,特别是因为django提供了apps模块来获取所有模型。现在我只需要取消它的翻译

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-03-22 07:20:13

您可以使用以下命令获取源代码:

代码语言:javascript
复制
import inspect
print(inspect.getsource(biz unit))

只有当参数是模块、类、方法、函数、回溯、帧或代码对象时,这才有效。如果Python无法获得源代码,那么这将引发一个IOError

票数 2
EN

Stack Overflow用户

发布于 2016-03-22 10:33:39

如果你想从一个AST重建源文本,你可以构建一个漂亮的打印机。

关于如何做到这一点,请参阅我的SO答案:https://stackoverflow.com/a/5834775/120163

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36143380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档