Найти - Пользователи
Полная версия: пространство имен
Начало » Python для новичков » пространство имен
1 2
andrei186
Rodegast
P.S. Всё что я тут написал это адовы костыли, по этому советую правильно проектировать программы и тогда тебе не придётся сталкиваться с чем-то подобным.
Спасибо, попробую походить с Вашими костылями.
Да, тут еще выснил для себя другое обстоятельство: в программе код вызова функции не может располагаться выше определения этой функции. Т.е. питоновский интерпретатор не обрабатывает сначала определения функция, а просто идет по коду сверху вниз
ПС. Программу я не проектировал. Мне ее дали, а я хочу немного подстроить ее под себя
andrei186
Rodegast
По этому надо побеждать по другому (правильный способ):

#p2.py
def foo2():
foo2.foo()

#p1.py
from p2 import foo2
def foo():
print “be-be-be”
foo2.func_dict.update({“foo”:foo})
foo2()

P.S. Всё что я тут написал это адовы костыли, по этому советую правильно проектировать программы и тогда тебе не придётся сталкиваться с чем-то подобным.

Это работает! А в чем ты усматириваешь костыльность такого решения? В чем детская неожиданность зарыта? По мне так выглядит элегантно.

“Может она кому как кляча,
А мне так точно в самый раз” (с)

PS. Не подскажите ссылочку, где можно почитать про func_dict и func_globals?
Гугл ничего не приносит
FishHook
andrei186
А в чем ты усматириваешь костыльность такого решения?
А в чем смысл такого решения?
Вы расскажите какую задачу решаете, и вам покажут годное решение. Вы сейчас сами себе придумали геморрой, сами его мужественно преодолели и удивляетесь “А что не так? Преодолел же!”.
Скорее всего можно обойтись совсем без геморроя.
Rodegast
> В чем детская неожиданность зарыта? По мне так выглядит элегантно.

В том что твой модуль может использовать программа которая про его особенности ничего не знает.

> PS. Не подскажите ссылочку, где можно почитать про func_dict и func_globals?

https://www.youtube.com/watch?v=H1fMxiaQ7xw
andrei186
FishHook
А в чем смысл такого решения?
Озадачен… Вы сами-то свой вопрос поняли? Смысл любого решения - получение желаемого результата. Я его получил, причем минимальной кровью
FishHook
Вы расскажите какую задачу решаете, и вам покажут годное решение.
Скорее всего можно обойтись совсем без геморроя.
Предложенное Rodegastом решение заняло пол-строки.
Вы можете предложить что-то еще более годное? И для этого я должен для Вас составлять ТЗ страниц на 15 - это у Вас “совсем без геморроя” ?
FishHook
Вы сейчас сами себе придумали геморрой, сами его мужественно преодолели и удивляетесь “А что не так? Преодолел же!”.
Я ничего не преодолевал, тем более мужественно. Грамотный человек подсказал, а Вы, кроме невнятной, и к тому же не совсем корректной фразы на предыдущей странице, занимаетесь воспитательной работой.
andrei186
Rodegast
В том что твой модуль может использовать программа которая про его особенности ничего не знает.
У меня не собирается быть никаких других программ. За ссылку спасибо
FishHook
andrei186
Уважаемый, идите в жопу. Это вы пришли на форум с вопросами, это вам нужна помощь?
Ну видимо не сильно нужна, раз вы не хотите её получать.
Не хотете хлеба с маслом, будет вам хрен с горчицей.
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