在python django中,你如何打印出一个对象的反思?该对象的所有公共方法列表(变量和/或函数)?
例如:
def Factotum(models.Model):
id_ref = models.IntegerField()
def calculateSeniorityFactor():
return (1000 - id_ref) * 1000
我希望能够在Django shell中运行命令行来告诉我Django模型的所有公共方法.上面运行的输出将是:
>> introspect Factotoum --> Variable: id_ref --> Methods: calculateSeniorityFactor
Len*_*bro 42
那么,你可以反省的东西很多,而不仅仅是一个.
好的开始是:
>>> help(object)
>>> dir(object)
>>> object.__dict__
Run Code Online (Sandbox Code Playgroud)
另请参阅标准库中的inspect模块.
这应该使所有基地的99%属于你.
使用检查:
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
print 'Methods:',
for name, _ in methods: print name,
print
Run Code Online (Sandbox Code Playgroud)
在普通的Python shell中,没有办法在没有括号的情况下调用它,你必须使用introspect(Factotum)((Factotum当然在当前命名空间中导入类属性))而不是 introspect Factotum空格.如果这让你非常烦恼,你可能想看看IPython.
| 归档时间: |
|
| 查看次数: |
22172 次 |
| 最近记录: |