Python - Duda: Obtener el nombre de una función.

 
Vista:
sin imagen de perfil
Val: 25
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Duda: Obtener el nombre de una función.

Publicado por BigfooTsp (12 intervenciones) el 16/11/2016 11:30:03
Hola.
No hace mucho que estoy con python y tengo una duda, supongo que muy básica, sobre un código en el que estoy trabajando.
En este código utilizo contextmanager para gestionar los errores, y me gustaría que en mensaje devuelto me indicara desde que función se produce ese error ya que hay varias funciones que lo invocan.

Resumo aquí un ejemplo para que me entendáis:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# función que invoca el @contextlib.contextmanager:
 
def dbx_user_status (dbx=dbx):
	''' obteber información del usuario '''
 
	with dbx_error("Obteniendo información de usuario"): # incorporo manejo de errores con contextmanager.
		user = dbx.users_get_current_account()
		print ("Usuario:\n %s"%user)
 
	with dbx_error("Obteniendo espacio usado en cuenta."):
		space = dbx.users_get_space_usage()
		print ("\nEspacio usado:\n %s"%space)
 
	return user, space
 
 
# Con esto gestiono los errores:
 
@contextlib.contextmanager
def dbx_error(mensaje):
	try:
		yield
	except Exception as er:
		print ("# Ha habido un error '%s' en la función %s de tipo:\n %s" %(mensaje, (Aquí quiero el nombre!) ,er))
 
''' Me da un mensaje sufuciente para interpretar el error, pero además,
lo que quiero es que desde aquí sea capaz de saber desde que función 
o método viene (que es lo que no sé hacer) e indicármelo también. '''

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 1.472
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Duda: Obtener el nombre de una función.

Publicado por xve (1637 intervenciones) el 16/11/2016 13:25:15
Hola, te he publicado un código de ejemplo para obtener el nombre de nuestra función y obtener el nombre de donde es llamada nuestra función.

http://www.lawebdelprogramador.com/codigo/Python/3751-Obtener-el-nombre-de-la-funcion-donde-nos-encontramos-y-de-donde-es-llamada.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 25
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Duda: Obtener el nombre de una función.

Publicado por BigfooTsp (12 intervenciones) el 17/11/2016 21:26:41
Exactamente lo que buscaba. Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar