Я не уверен насчет терминологии. Мой способ реализации это другой способ OOP или импорта. Так что, если у кого-то есть подходящая терминология для этого, пожалуйста, предоставьте это (извините, я благо). В основном мы используем подпроцесс для вызова script_2.py. 'r' в windows.
proc = subprocess.Popen(
[r'path\to\python.exe',
r'path\to\script_2.py', var_1, var_2)
Вы перехватываете var_1 с помощью sys.argv [1] и var_2 с помощью sys.argv [2] в script_2.py.
Сейчас для сложной части. вам нужно использовать pickle для предоставления файла со счетчиком. В script_1.py:
counter_file = 'counter'
def unpickle_database(filename):
with open(filename, 'rb') as f:
while True:
try:
yield pickle.load(f)
except EOFError:
break
def return_counter():
count = list(unpickle_database(counter_file))
try:
return count[0]
except IndexError:
return 0
def save_counter(counter_file):
raw_counter = return_counter()
final_counter = counter + raw_counter
with open(counter_file, 'wb') as output:
pickle.dump(final_counter, output, pickle.HIGHEST_PROTOCOL)
while running:
if return_counter() < int(threads.get()):
counter += 1
save_counter(counter_file)
if not running:
break
proc = subprocess.Popen(
[r'path\to\python.exe',
r'path\to\tor_money.py', var_1, var_2)
В script_2.py:
counter_file = 'counter'
def unpickle_database(filename):
with open(filename, 'rb') as f:
while True:
try:
yield pickle.load(f)
except EOFError:
break
def return_counter():
count = list(unpickle_database(counter_file))
for number in count:
return number
## end your process here
raw_counter = return_counter()
print(raw_counter)
final_counter = raw_counter - 1
with open(counter_file, 'wb') as output:
pickle.dump(final_counter, output, pickle.HIGHEST_PROTOCOL)
print(final_counter)