Pythonでの制約プロセスと、ポスト処理は、別プロセスです。制約プロセスで、A=1と書き込んでも、ポスト処理では、それを見事に忘れてしまいます。なので、情報交換する手段がありません。
これを回避する手段としては、制約プロセスとポスト処理プロセスで、同じ設定ルーチンを呼べば、同じ値で動作させることができます。
しかし、制約プロセスで、ユーザにインタラクティブに挙動を決定させた場合に、その結果をポスト処理で知ることは出来ません。そうした場合の処理方法についてです。
制約プロセスで取得した情報は、CSVで書きこみ、ポスト処理ではそのCSVを読む方法と取っています。
def set_advisor_method(): global advisor_count_method advisor_count_method=1 #0→0 1→1 2→1 3→2 4→2 #advisor_count_method=1 #0→0 1→0 2→1 3→1 4→2 MessageBox = ctypes.windll.user32.MessageBoxW res=MessageBox(HWND, 'アドバイザカウント方法 3人(1人)で2人(1人)でカウント(推奨)する', 'アドバイザカウント方法', 3) if res==6: advisor_count_method=0 write_csv('csv.csv') def write_csv(file_name1): file_name =project_file_path+'/'+file_name1 with open(file_name, 'w') as f: writer = csv.writer(f) list=[] list.append(advisor_count_method) writer.writerow(list) def read_csv(file_name1): file_name =project_file_path+'/'+file_name1 global advisor_count_method with open(file_name,'r') as f: reader = csv.reader(f) cnt=0 for row in reader: print(row) if cnt==0: advisor_count_method=row[0] cnt +=1 print('advisor_cnt_method',advisor_count_method) def post_main(): global advisor_count_method read_csv('csv.csv') check_comittee() allowable_errors=3 global advisor_count_method set_advisor_method()
0 件のコメント:
コメントを投稿