Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 6, 2008 16:50:46

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли вызвать из скрипта функцию не импортируя его?

хех… зато я понял что ты имеел ввиду когда спрашивал. =)
просто я думал что надо вызвать функцию из скрипта не импортируя скрипт, зная только имя функции,а не вызвать функцию которую передали (в примере передали именно функцию, а не ее имя)

собственно это то что и говорил j2a =)



Отредактировано (Фев. 6, 2008 16:51:53)

Офлайн

#2 Фев. 6, 2008 17:04:46

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

Можно ли вызвать из скрипта функцию не импортируя его?

В таком языке программирования как питон (динамическая типизация) почти что всё-равно, есть ли у вас имя функции или сама импортированная функция, или там этой фукции вобще нету и небыло:) Вот это из разряда хаков (monkey patching), о которых возможно (я надеюсь) будет доклад на эксцепшине >>> http://www.python.com.ua/forum/viewtopic.php?id=1707

Я за проведение съёмки докладов, а то приехать скорее всего не получится:(



Офлайн

#3 Фев. 6, 2008 17:12:01

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли вызвать из скрипта функцию не импортируя его?

ну.. для манки-патчинга полюбому надо проимпортировать модуль… в принципе, как я понимаю, что происходит при импорте - код функции загружается в память, потом если надо, передается ссылка на его адрес в памяти. конечно есть и не только такие способы заполучения кода в память - довольно ничего привел tabajara =) хотелось бы побольше узнать про процесс компилирования кода, и манки-патчинг на этом этапе, изменение исходников на этапе до компилирования, читал про _ast, но есть одно но, дерево нельзя изменять (пока). вобщем интересно как работает compile()
=)



Офлайн

#4 Фев. 6, 2008 22:40:57

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

Можно ли вызвать из скрипта функцию не импортируя его?

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/286195
Изменение скомпилированного байт-кода.
Процесс, прямо скажу, непростой.



Офлайн

#5 Фев. 7, 2008 21:45:06

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли вызвать из скрипта функцию не импортируя его?

а декомпилить этот код можно на лету?
и еще вопрос, можно ли компилить строки? если я например считал файл в буффер, и хочу его скомпилить - смогу ли я это сделать?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version