Запустите другой файл python, изменив одну из его переменных. - PullRequest
0 голосов
/ 17 марта 2020

Я хотел бы запустить файл1 из другого файла2 при изменении одной из его переменных. Примерно так:

file1.py

a = 1
b = 1
c = 1
# Then:
# Countless functions depending on a, b, c, etc., depending on each other in complicated ways.
# Results from these functions are plotted and exported

file2.py

# Pseudo-code:
import file1 with (a = 0)  # runs file1, exporting all results, as if file1 had a = 0.

Что самое простое способ сделать это, учитывая, что у меня слишком много переменных, сложных функций и зависимостей в file1.py?

Ответы [ 2 ]

2 голосов
/ 17 марта 2020

Если вам нужно изменить глобальную переменную из другого модуля, вы можете сделать это, написав

import file1
file1.a = 0

Обратите внимание, что оператор import приведет к выполнению file1 в полном объеме, и поэтому любое использование на уровне модуля a с помощью file1 или его зависимостей будет использовать исходное значение (в данном случае 1).

Если вам нужно контролировать, когда содержимое file1 выполняются, вы должны переместить его содержимое в функцию или класс. Вполне вероятно, что переменная a в вашем примере будет лучше выражена как параметр функции, которую определяет file1.

0 голосов
/ 17 марта 2020

Оберните ваши переменные как функции и передайте значение в качестве параметра.

def get_a(val=1):
    return val

затем в файле2

import file1
file1.get_a(0)
...