【发布时间】:2023-04-02 13:11:01
【问题描述】:
我想从 FilterStore 中获取许多项目。
factory.stock_part.items
FilterStore 是列表类型
[{'order_id': 534066215, 'id': 0}, {'order_id': 534066215, 'id': 1}, {'order_id': 534066215, 'id': 2}, {'order_id': 534066215, 'id': 3}, {'order_id': 534066215, 'id': 4}, {'order_id': 534066215, 'id': 5}, {'order_id': 534066215, 'id': 6}, {'order_id': 534066215, 'id': 7}, {'order_id': 534066215, 'id': 8}]
我想使用:
factory.stock_part.get()
获得五件物品
factory.stock_part.get(5)
没用。
我该如何解决这个问题?完整代码如下:
import simpy
class Factory():
def __init__(self, env):
self.stock_part = simpy.FilterStore(env, capacity = 100000)
def stock_out(env,factory):
while True:
yield env.timeout(10)
#in here I hope the inventory reduce 3,but one of the following 3 lines is not work
factory.stock_part.get(5)
factory.stock_part.get()[0:3]
factory.stock_part.get(factory.stock_part.items[0:3])
env = simpy.Environment()
factory = Factory(env)
#create inventory list
factory.stock_part.put({'id':1})
factory.stock_part.put({'id':2})
factory.stock_part.put({'id':3})
factory.stock_part.put({'id':4})
factory.stock_part.put({'id':5})
on_process = env.process(stock_out(env, factory))
print('start')
env.run(until = 300)
print('end')
【问题讨论】:
-
错误信息是什么?如果是简单的列表,可以使用列表切片:
factory.stock_part[:5]
得到前5个。FilterStore和你展示的代码有什么关系? minimal reproducible example! -
factory.stock_part.get(factory.stock_part[:2]) *** TypeError: 'FilterStore' object is not subscriptable
-
factory.stock_part.get(factory.stock_part.items[0:5]) *** TypeError: 'list' object is not callable
-
请发布一个minimal reproducible example,我们可以运行它来模拟您的数据结构,以便我们提供帮助。目前这是一个没人能从中受益的猜谜游戏。
-
感谢您的回复。但是 factory.stock_part.get(factory.stock_part[:2]) 或 factory.stock_part.get(factory.stock_part.items[0:5]) 不起作用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:我想在 Simpy Python 中从 FilterStore 中获取许多项目 - Python技术站