if フロー制御を使用して関数を作成しましたが、それについていくつか疑問に思っています。
class Supplier(Process):
def weeklySupply(self):
global D1Vals
xMeet = D1Vals[0]
lead = 0
capac = 150.0
supply = 0
if stocked.amount >= 15000:
supply = 0
yield put, self, stocked, supply
S1Vals.append(0)
elif supply >= capac:
supply = capac
yield put, self, stocked, supply
S1Vals.append(capac)
else:
supply = random.triangular(.70 * xMeet , xMeet , xMeet * 1.05)
yield put, self, stocked, supply
print ('Week:'+'%6.0f:Supplied: %6.0f units. CurSupply = %6.0f' %
(now() + 1., supply, stocked.amount))
yield hold, self, lead
S1Vals.append(supply)
del D1Vals[0]
私がコード化したのは次のとおりです。
ストックされたオブジェクトの量が >= 15000 の場合、オブジェクトはゼロの供給を生成するか、事前定義された「capac」量よりも大きい供給値が生成された場合、供給値 = 「capac」です。
上記のいずれにも当てはまらない場合、供給値はランダムな分布として生成されました。ただし、出力を取得すると、供給値は 'capac' 値の 150 を超えています。
フローのやり方を誤解していませんか?