Supongamos myapp/foo.py
contiene:Obtener __name__ de llamar módulo de función en Python
def info(msg):
caller_name = ????
print '[%s] %s' % (caller_name, msg)
Y myapp/bar.py
contiene:
import foo
foo.info('Hello') # => [myapp.bar] Hello
Quiero caller_name
se establezca en el atributo __name__
del módulo de las funciones de llamada (que es 'myapp.foo') en este caso. ¿Cómo puede hacerse esto?
Supongamos que algún otro script de punto de entrada invoca bar.py .. y por lo tanto 'caller_name' no puede ser' __main__' –
¿Está seguro de que su código de ejemplo es correcto? ¿No debería el cuerpo de myapp/bar.py be: import foo; foo.info ('Hola') # => [myapp.bar] Hola –
Correcto, arreglé el código. –