Уведомления

Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Июнь 18, 2007 15:51:40

Пожарский
От:
Зарегистрирован: 2006-09-04
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнай импортера?

Такой вопрос; Как узнать из импортируемого модуля, имя импортера?
Буду благодарен



Офлайн

#2 Июнь 18, 2007 16:08:55

tabajara
От:
Зарегистрирован: 2007-01-02
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнай импортера?

?????????????? не чув про таке



Отредактировано (Июнь 18, 2007 16:09:24)

Офлайн

#3 Июнь 18, 2007 16:10:58

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнай импортера?

Это стояние на голове. Модуль импортируют, чтобы использовать его объекты. Если надо передать себя в его объекты -так в явном виде и передают. Вызывают какую-нибудь функицю после импорта.



Офлайн

#4 Июнь 18, 2007 16:22:37

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнай импортера?

Пожарский/ раскажи зачем тебе это нужно - может быть есть другое решение



Офлайн

#5 Июнь 19, 2007 10:20:17

Пожарский
От:
Зарегистрирован: 2006-09-04
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнай импортера?

Да решение то есть, но искуство дороже… Джава сие поддерживает



Офлайн

#6 Июнь 19, 2007 11:30:05

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнай импортера?

Пожарский
Да решение то есть, но искуство дороже…
Мне непонятен смысл этого.



Офлайн

#7 Июнь 19, 2007 12:25:17

Пожарский
От:
Зарегистрирован: 2006-09-04
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнай импортера?

Что именно тебе не понятно? Цитата?
Если стоит задача ее интересно решить чем найти другие подходы. Только ради самой задачи



Офлайн

#8 Июнь 19, 2007 12:27:27

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнай импортера?

Зачем узнать из импортируемого модуля, имя импортера? См. мой пост № 3



Отредактировано (Июнь 19, 2007 12:27:55)

Офлайн

#9 Июнь 19, 2007 14:34:19

Пожарский
От:
Зарегистрирован: 2006-09-04
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнай импортера?

Значит родители Джавы не учли твою точку зрения) и таки добавили сию ф-ность…
Спортивный интерес; можно ли и как?



Отредактировано (Июнь 19, 2007 14:36:35)

Офлайн

#10 Июнь 19, 2007 14:57:46

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Как узнай импортера?

Пожарский
Спортивный интерес; можно ли и как?
Странный интерес… Но чего не сделаешь ради спорта!..

Это - 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 куда-нибудь - не проблема



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version