¿Cómo puedo averiguar qué archivo está importando un archivo en particular en python?¿Cómo saber quién me está importando en python?
Consideremos el siguiente ejemplo:
#a.py
import cmn
....
#b.py
import cmn
...
#cmn.py
#Here, I want to know which file (a.py or b.py)
#is importing this one.
#Is it possible to do this?
...
Todos los archivos a.py
, b.py
y cmn.py
están en el mismo directorio.
¿Por qué quiero hacer esto?
En C/C++, tienen función de inclusión. Lo que quiero hacer puede iluminarse con el código C/C++.
//a.cpp
....
#define SOME_STUFF ....
#include "cmn.h"
//b.cpp
...
#define SOME_STUFF ....
#include "cmn.h"
//cmn.h
//Here, I'll define some functions/classes that will use the symbol define
//in the a.cpp or b.cpp
...
....code refer to the SOME_STUFF.....
en C/C++, podemos utilizar este método para reutilizar sourecode.
Ahora regrese a mi código python.
Cuando a.py import cmn.py, espero ejecutar cmn.py y el cmn.py se referirá al símbolo definido en el a.py.
Cuando b.py import cmn.py, espero ejecutar cmn.py y el cmn.py se referirá al símbolo definido en b.py.
Las bibliotecas no deben depender de quién las importa, por lo que realmente no debería importar. –
@MichaelAaronSafyan tiene razón. Sin embargo, * se puede * hacer, como lo demuestro aquí: http://stackoverflow.com/questions/7025538/in-python-if-a-module-calls-upon-another-modules-functions-is-it- posible-para/7025963 # 7025963. Sin embargo ... ¿cuál es el problema * real * que estás tratando de resolver? – Johnsyweb
¿Qué estás tratando de lograr? Tal vez haya una forma alternativa de lograrlo sin acoplar sus archivos de esta manera. –