In python django how do you print out an object's introspection? The list of all public methods of that object (variable and/or functions)?
在python django中,如何打印出对象的透视图?该对象的所有公共方法的列表(变量和/或函数)?
例如。:
1 2 3 4 5 | def Factotum(models.Model): id_ref = models.IntegerField() def calculateSeniorityFactor(): return (1000 - id_ref) * 1000 |
我希望能够在django shell中运行命令行,告诉我django模型的所有公共方法。上面运行的输出将是:
1 2 3 | >> introspect Factotoum --> Variable: id_ref --> Methods: calculateSeniorityFactor |
号
好吧,你可以反省的事情很多,而不仅仅是一件。
首先要做的是:
1 2 3 | >>> help(object) >>> dir(object) >>> object.__dict__ |
还可以查看标准库中的检查模块。
这将使99%的基础属于你。
使用检查:
1 2 3 4 5 6 7 8 9 10 | import inspect def introspect(something): methods = inspect.getmembers(something, inspect.ismethod) others = inspect.getmembers(something, lambda x: not inspect.ismethod(x)) print 'Variable:', # ?! what a WEIRD heading you want -- ah well, w/ever for name, _ in others: print name, print 'Methods:', for name, _ in methods: print name, |
号
在普通的python shell中,没有括号就不能调用这个函数,您必须使用