Найти - Пользователи
Полная версия: Как узнай импортера?
Начало » Флейм » Как узнай импортера?
1 2 3
Пожарский
Такой вопрос; Как узнать из импортируемого модуля, имя импортера?
Буду благодарен
tabajara
?????????????? не чув про таке
balu
Это стояние на голове. Модуль импортируют, чтобы использовать его объекты. Если надо передать себя в его объекты -так в явном виде и передают. Вызывают какую-нибудь функицю после импорта.
pythonwin
Пожарский/ раскажи зачем тебе это нужно - может быть есть другое решение
Пожарский
Да решение то есть, но искуство дороже… Джава сие поддерживает
balu
Пожарский
Да решение то есть, но искуство дороже…
Мне непонятен смысл этого.
Пожарский
Что именно тебе не понятно? Цитата?
Если стоит задача ее интересно решить чем найти другие подходы. Только ради самой задачи
balu
Зачем узнать из импортируемого модуля, имя импортера? См. мой пост № 3
Пожарский
Значит родители Джавы не учли твою точку зрения) и таки добавили сию ф-ность…
Спортивный интерес; можно ли и как?
Андрей Светлов
Пожарский
Спортивный интерес; можно ли и как?
Странный интерес… Но чего не сделаешь ради спорта!..

Это - import hook

#imphook.py
import sys
import traceback as tb

import __builtin__

stnd_import = __builtin__.__import__

def my_import(*args, **kwargs):
code = sys._getframe(1).f_code
print code.co_name, code.co_filename, ‘:’, code.co_firstlineno
return stnd_import(*args, **kwargs)

def f():
tb.print_stack()

__builtin__.__import__ = my_import

Это - то что импортим

#samplemod.py
'''Some module'''


А здесть инсталируем hook и импортируем модуль samplemod

#main.py
import imphook

def f():
import samplemod

f()


Запусти main.py, увидишь на экране:
f c:\temp\main.py : 4

Организовать callback куда-нибудь - не проблема
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB