こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

別々に実行のpythonでグローバル変数できる?

python初心者です。

例えばなんですが、
test1.py
test2.py
2つのpythonコードを用意して、

test1.py側で1秒間ごとにインクリメントしていくループの処理を実行しながら、test2.pyではcronなどで定期実行させて、test1.pyでインクリメントさせている変数をprintしていくようなコードを作ることは可能でしょうか?

今回のような別々に実行させておいて、変数をtest1.py、test2.py間で変数を共有するようなグローバル変数というのはできますでしょうか?

ご教示頂きますよう、どうぞよろしくお願い致します。

投稿日時 - 2018-02-21 20:04:07

QNo.9431330

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

 プロセス間通信になりますね・・・。OSは、cronが出てくるところを見ると、linuxでしょうか・・・

 まず、単純に変数を共有させて・・・は、無理筋です。ある意味、それが「できないようにする」為に、OSは一生懸命仕事してるんですから(苦笑)
 冒頭につぶやいた、「プロセス間通信」をググると、あなたの欲しい情報が山のように出てくることでしょう。

 例えば、python3系での該当のマニュアルは、「https://docs.python.jp/3.6/library/ipc.html」のあたりです。

 ソケットを使うか、キューを使うか、シグナルを使うか・・・あたりがとりあえずの候補かな。どの仕組みも、他のプロセスと情報をやりとりするために、いったんOSに依頼して通信用の通路を作ってもらい、OS経由で情報を交換する形となります。
 ソケットは、一見ネットワーク通信用に見えますが、実は、自分のマシンの中だけでの閉じた世界でも、使えますし、用途によっては、これが一番の時が良くあります。

 どれもこれも、ここで簡単に・・・説明するのは、無理がありますので、とりあえず、まず、上記のpythonのマニュアルを見てください。

投稿日時 - 2018-02-21 23:21:04

ANo.1

グローバル変数ではありませんが共有メモリを利用する事で似たような事は可能かと。
https://docs.python.jp/3.3/library/multiprocessing.html#multiprocessing-programming

投稿日時 - 2018-02-21 23:16:50

あなたにオススメの質問