Learning SimPy right now. I am using the first example code, link https://simpy.readthedocs.org/en/latest/topical_guides/process_interaction.html
This part of code is written in interactive mode. I want to put the class EV into a individual python file which is named as Ev.py (shown below).
Ev.py
class EV:
def __init__(self, env):
self.env = env
self.drive_proc = env.process(self.drive(env))
self.bat_ctrl_proc = env.process(self.bat_ctrl(env))
self.bat_ctrl_reactivate = env.event()
def drive(self, env):
while True:
# Drive for 20-40 min
yield env.timeout(randint(20, 40))
# Park for 1–6 hours
print('Start parking at', env.now)
self.bat_ctrl_reactivate.succeed() # "reactivate"
self.bat_ctrl_reactivate = env.event()
yield env.timeout(randint(60, 360))
print('Stop parking at', env.now)
def bat_ctrl(self, env):
while True:
print('Bat. ctrl. passivating at', env.now)
yield self.bat_ctrl_reactivate # "passivate"
print('Bat. ctrl. reactivated at', env.now)
# Intelligent charging behavior here …
yield env.timeout(randint(30, 90))
Then I import the file. I run it like this:
from random import seed, randint
seed(23)
import simpy
import Ev
env=simpy.Environment()
ev = Ev.EV(env)
env.run(until=150)
When it comes to step: ev=Ev.EV(env), It shows there is an error:
Traceback (most recent call last):
File "stdin", line 1, in module
TypeError: this constructor takes no arguments