#python
Вопрос:
Я хочу просмотреть список значений переменных, передать их внешнему сценарию и собрать результат работы внешнего сценария. Моя цель-увидеть, как объективный результат ведет себя в ответ на различные значения параметра
import pandas as pd
import os
import winsound
import matplotlib.pyplot as plt
from statistics import stdev
from pandas import DataFrame
value_to_test=range(10,20)
values_list=list(value_to_test)
objective=0
parameter=1
for i in values_list:
parameter=i/10
runfile('C:/Users/AGL/systems/Systems/trade_functions.py', wdir='C:/Users/AGL/systems/Systems')
runfile('C:/Users/AGL/systems/Systems/system.py', wdir='C:/Users/AGL/systems/Systems')
print(parameter,objective)
в system.py внешний скрипт вычисляет модель на основе значений параметров. изначально этот параметр был импортирован из trade_functions.py как статическое значение с плавающей точкой. Теперь я хочу просмотреть список значений параметров — 1 t — 2 с шагом 0,1. но по какой-то причине python не передает значение параметра внешнему скрипту (system.py) каждый раз, когда вычисляется цикл….
Я получаю одну и ту же цель на каждом шаге цикла:
1.0 1
1.1 1
1.2 1
1.3 1
1.4 1
1.5 1
1.6 1
1.7 1
1.8 1
1.9 1
Комментарии:
1. Являются ли внешние сценарии частью проекта? Это вы их создали?
2. привет, да….изначально этот параметр был определен в trade_functions. py теперь я хочу просмотреть этот параметр, каждый раз устанавливать его в этом коде и передавать его system.py для оценки
Ответ №1:
Если у вас есть эти внешние сценарии, вы можете поступить по-другому: ваши сценарии должны быть внешними модулями, состоящими из функций, которые вы могли бы импортировать для их запуска непосредственно из вашего основного сценария.
Позвольте мне попытаться проиллюстрировать это примером.
В вашей папке вам, возможно, придется разделить файлы : main-file.py
и trade_functions.py
. Вторым будут ваши внешние скрипты:
def my_first_function(param1, param2):
# (enter code here)
return result1
def my_first_function(param1, param3):
# (enter code here)
return result2
Затем в своем основном коде вы импортируете обе функции и запускаете их напрямую:
import pandas as pd
import os
import winsound
import matplotlib.pyplot as plt
from statistics import stdev
from pandas import DataFrame
from trade_functions import function1, function2
value_to_test=range(10,20)
values_list=list(value_to_test)
objective=0
parameter=1
for i in values_list:
parameter=i/10
# I do not know your functions, so these ar simple examples
# The point is that you can use any parameter as you need
res1 = function1(i, parameter)
res2 = function2(i, objective)
print(parameter,objective)
Комментарии:
1. спасибо вам за ваш ответ о похищении. но факт в том, что мое главное system.py сценарий содержит множество различных вычислений, выполняемых в цикле для нескольких csv — файлов, поэтому я не могу вызывать из него отдельные функции….Мне просто нужно быть способным каким-то образом передавать значения параметров внешнему сценарию… В настоящее время я пытаюсь оперировать system.py напрямую — просто зацикливание в форме параметров there….do вы знаете какой-нибудь хороший генетический оптимизатор для python, который может сканировать оптимальные параметры?
2. Возможно, попробуйте изменить свой код и использовать один или несколько внешних модулей для своих вычислений, чтобы упростить понимание глобального кода… и его поддержку