【发布时间】:2018-04-04 07:59:33
【问题描述】:
我有一个包含simpy Resource 和Container (buffer) 的类队列的代码:
class queue:
def __init__(self, env):
self.port = simpy.Resource(env, capacity=1)
self.buffer = simpy.Container(env, init = 0, capacity=1250000000)
self.mon_proc = env.process(self.monitor_tank(env))
但是当我想使用这个类并且它的属性缓冲区使用
def Packet(env, id, size, port, time_in_port):
arrive = env.now
yield queue.buffer.put(size)
print('packet%s %s arriving at %lf' % (id, size, arrive))
with port.request() as req:
yield req
tip = random.expovariate(1/time_in_port)
yield env.timeout(tip)
amount = size
yield queue.buffer.get(amount)
print('packet%s %s depart at %lf' % (id, size, env.now))
调用 queue.buffer 时出现以下错误
AttributeError: class queue has no attribute 'buffer'
介意解释为什么我不能使用类中的属性吗? 谢谢。
【问题讨论】:
-
buffer与Buffer不同。 -
@khelwood 抱歉,我修正了那个错字。仍然面临同样的问题
-
你真的在某处实例化你的队列类吗?看起来你只是想直接使用这个类
-
queue是一个类。queue()是该类的一个实例。buffer是 instance 的属性。
标签: python class attributeerror simpy