我想从实际的 python 对象中获取代码。这是 AST 和 parse 的相反想法,我在内存中有一个对象,我想重新创建源代码。我不想深入讨论过多的字节代码,我只想得到创建对象的代码的表示:
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
模块来获取所有模型。现在我只需要取消翻译
谢谢
最佳答案
您可以使用以下方式获取源代码:
import inspect
print(inspect.getsource(biz unit))
仅当参数是模块、类、方法、函数、回溯、框架或代码对象时才有效。如果 Python 无法获取源代码,则会引发 IOError
。
关于python - 从对象重建源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36143380/