2024年1月18日木曜日

Python記述されていない変数に対する参照対策

 下記で、CCは、クリニカルコーチのリストですが、CCが存在しない場合は、エラーとなって、止まってしまいます。


import sc3

for person in a_1年目:
    list=[]
    for day in 今月:
        v=sc3.GetShiftVar(person,day,'ロング日勤')
        vc=sc3.GetShiftVar(CC[0],day,'ロング日勤')
        list.append(v&vc)
        
    s='1年目CCと長日_'+staffdef[person]
    sc3.AddSoft(sc3.SeqError(1,1,3,list),s,4)

プログラムは、CCの存在を暗黙のうちに仮定していましたが、堅牢なプログラムならば、それをものともせず動き続けるはずです。次のように修正しました。CCが存在しない場合は、警告を出力します。

import sc3

for person in a_1年目:
    list=[]
    for day in 今月:
        v=sc3.GetShiftVar(person,day,'ロング日勤')
        try :
            vc=sc3.GetShiftVar(CC[0],day,'ロング日勤')
            list.append(v&vc)
        except:
            print("警告 CCがいません")
    s='1年目CCと長日_'+staffdef[person]
    if len(list)>=1:
        sc3.AddSoft(sc3.SeqError(1,1,3,list),s,4)

    

0 件のコメント:

コメントを投稿