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 .