with tutorial para framework español ejemplos develop applications python django

tutorial - En Python Django, ¿cómo se imprime la introspección de un objeto? ¿La lista de todos los métodos públicos de ese objeto(variable y/o funciones)?



framework django para python (2)

Bueno, las cosas que se pueden hacer introspectivas son muchas, no solo una.

Las cosas buenas para empezar son:

>>> help(object) >>> dir(object) >>> object.__dict__

También eche un vistazo al módulo de inspección en la biblioteca estándar.

Eso debería hacer que el 99% de todas las bases te pertenezcan.

En Python Django, ¿cómo se imprime la inrospección de un objeto? ¿La lista de todos los métodos públicos de ese objeto (variable y / o funciones)?

p.ej:

def Factotum(models.Model): id_ref = models.IntegerField() def calculateSeniorityFactor(): return (1000 - id_ref) * 1000

Quiero poder ejecutar una línea de comandos en el shell de Django para decirme todos los métodos públicos de un modelo de Django. La salida de correr arriba sería:

>> introspect Factotoum --> Variable: id_ref --> Methods: calculateSeniorityFactor


Uso inspect :

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

No hay forma de invocar esto sin paréntesis en un shell de Python normal, tendrá que usar introspect(Factotum) ((con la propiedad de clase Factotum importada en el espacio de nombres actual, por supuesto) y no introspect Factotum con un espacio. Si esto te molesta terriblemente, es posible que desees mirar IPython .