
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:
Gracias!
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


0