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 件のコメント:
コメントを投稿