我創建了一個函數,如果流量控制,我想知道關於它的一些事情。如果... Elif ...其他流程
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,則該對象生成零電源 或如果生成了供給值這是更大的而不是預定義的'容量',那麼供應值='容量'。
如果以上情況均不成立,則供應價值是作爲隨機分佈生成的。當我得到我的輸出雖然,供應值確實超過了'容量'值150.
我誤解了如何做流?
'stocked.amount'定義在哪裏? – 2012-07-30 08:08:06
我想你的隨機三角形(.70 * xMeet,xMeet,xMeet * 1.05)'計算仍然可以高於'capac' .. – 2012-07-30 08:23:31
另外,通常會產生4個值('put,self,stocked,supply' ),但在你的其他分支中,你也*產生3個值('hold,self,lead')。確保使用這個生成器的任何東西都會考慮到這一點,而不是爲第四個參數「補充」一個值,這恰好是「supply」。 – 2012-07-30 08:26:58