import multiprocessing
from time import sleep
class bar():
def __init__(self): pass
def x(self, a, b): print(self, a, b)
def y(self, a, b=None, c=None): print(self, c, b, a)
def phandler(ops):
hbar = bar()
while True:
fname, args, kwargs = ops.get()
fn = eval("hbar." + fname)
fn(*args, **kwargs)
def x(*args, **kwargs): ops.put(["x", args, kwargs])
def y(*args, **kwargs): ops.put(["y", args, kwargs])
if __name__ == "__main__":
ops = multiprocessing.Manager().Queue()
multiprocessing.Process(target=phandler, args=(ops,)).start()
x(1, 2)
y(1, c=2)
sleep(1) # or any other way to wait for the functions to finish execution
Недостаток: требуется одна функция в основном контексте на каждую функцию во внешнем классе в другом процессе.
Как видите, код x() и y() в основном контексте практически идентичны. Разве это не требует некоторой оптимизации? Я имею в виду своего рода функцию «диспетчера», которую можно вызывать под разными именами, примерно так:
def dispatch(*args, **kwargs): ops.put([__name__, args, kwargs])
x = y = dispatch
Но мои исследования на данный момент столкнулись с двумя основными проблемами:
Да, имя< /strong> не работает (это просто заполнитель), но я не смог найти другого метода, который возвращал бы «x» или «y», а не всегда просто «отправку».
< /li>
Вместо определения нескольких функций теперь мне нужно определить несколько псевдонимов для функции-диспетчера, что тоже неоптимально.
if __name__ == "__main__": ops = multiprocessing.Manager().Queue() multiprocessing.Process(target=phandler, args=(ops,)).start() x(1, 2) y(1, c=2) sleep(1) # or any other way to wait for the functions to finish execution [/code] Недостаток: требуется одна функция в основном контексте на каждую функцию во внешнем классе в другом процессе. Как видите, код x() и y() в основном контексте практически идентичны. Разве это не требует некоторой оптимизации? Я имею в виду своего рода функцию «диспетчера», которую можно вызывать под разными именами, примерно так: [code]def dispatch(*args, **kwargs): ops.put([__name__, args, kwargs]) x = y = dispatch [/code] Но мои исследования на данный момент столкнулись с двумя основными проблемами: [list] Да, имя< /strong> не работает (это просто заполнитель), но я не смог найти другого метода, который возвращал бы «x» или «y», а не всегда просто «отправку». < /li> Вместо определения нескольких функций теперь мне нужно определить несколько псевдонимов для функции-диспетчера, что тоже неоптимально.
[/list] Есть идеи, как это работает в самом общем виде?
Я хотел бы настроить HTTPD как обратный прокси-сервер, чтобы перенаправлять только вызов URL-адреса только с именем хоста (например: а затем оставлять другой вызов с конкретными директивами.
В качестве примера см. ниже некоторые настройки...
Я моделирую сеть в pypsa с ограничениями, которые имеют статистически рассчитанное RHS, а это означает, что всегда существует вероятность неосуществимого решения (например, X > 10 и X None:
Моя функция работает так, как должна. Есть ли способ удалить функцию с определенного входа? Потому что он меняет все входы .. у меня есть 2 флажки и 1 вход, который мне не нужно иметь этой функции.
Я использую Ojalgo 55 для решения проблемы оптимизации в стандартной форме:
f(x) = 1/2 x^T Q x + p^T x + r
Я не уверен, как указать постоянный r в выражениях basedmodel , так что при оптимизации. result.getValue () называется возвращаемое...
Я использую Ojalgo 55 для решения проблемы оптимизации в стандартной форме:
f(x) = 1/2 x^T Q x + p^T x + r
Я не уверен, как указать постоянный r в выражениях basedmodel , так что при оптимизации. result.getValue () называется возвращаемое...