2014-09-12 2 views
0

У меня есть (возможно) простой вопрос о том, что Интернет, похоже, не помогает. Я хотел бы сделать несколько программ python в рамках другой программы python и не знаю, как заставить их вводить ввод друг в друга. Моя возможная идея состоит в том, чтобы (как доказательство концепции) одна программа действует как среда, а другие действуют как существа в этой среде. позвольте мне уточнить: я уверен, что вы видели те программы, которые имитируют естественную среду, когда существа в них взаимодействуют. Я хотел бы делать то же самое, что и в меньшем масштабе (текст вместо фантазии 3D-графики, если вообще). Конечная цель этого - не иметь сложной экосистемы, а видеть, как далеко я могу продвигать связь между программами (и силой моего компьютера на этом пути). P.S. Я хотел бы продолжать запускать его из IDLE или из командной строки.Программы на Python, общающиеся

+0

Имейте взгляд на subprocess module – user2085282

+0

Существует множество способов взаимодействия процессов. Вы можете найти [zeromq] (http://zguide.zeromq.org/page:all) хороший способ пойти. – tdelaney

ответ

0

Вы можете просто установить структуру модуля. Например, напишите main.py, который либо вызывает, либо импортирует данные из других «программ».

В вашем случае я бы использовал объективно-ориентированный подход.

Например, если у вас есть настройки программы следующим образом:

main.py
prog1.py
т.д.

Я хотел бы создать main.py например, как

import prog1 
creature_obj = prog1.new_creature() # where new_creature is a class in prog1 
... 
+0

Итак, я думаю, что так я бы это сделал, но я не знаю, как сделать 'prog1.py' доступным для' main.py'. Не могли бы вы объяснить это или опубликовать ссылку на видео YouTube? У меня пока нет большого опыта в этом. – unknown

+0

Я получаю часть 'import prog1' только не до этого. – unknown

+0

На самом деле, неважно. Я использовал этот сайт: [http://www.ibiblio.org/g2swap/byteofpython/read/making-modules.html] и понял это. Спасибо за помощь! – unknown

0

У вас есть много вариантов для exhanging сообщений между программами или компонентами:

  1. Вы можете написать выходные файлы, которые другие программы могут читать и действовать дальше. Вы хотите узнать, может ли потребитель смотреть каталог для файла и реагировать, когда он прибыл.
  2. Вы можете сделать их распределенными компонентами, которые обменивались сообщениями через сокеты или какой-либо протокол более высокого уровня, например HTTP. Связь может быть синхронной или асинхронной.
  3. Вы можете связать их как продюсеров, записывающих в очереди сообщений или темы, а также пользователей, слушающих очередь или тему для событий.
Смежные вопросы