title: Python + simPy: name 'move' is not defined
body: <p>I am making a simulation using python 2.6 + Simpy, about the subway system. here's my code:</p>
  
  <pre><code>import sys
  import random
  from math import*
  from math import ceil, log
  from random import*
  from random import random, uniform, seed, expovariate
  from SimPy import*
  from SimPy.Simulation import*
  from math import ceil, log
  
  totalusuarios = 0
  cantgrupos=0
  def triangulo(inf,sup,moda):
          return random.triangular((inf),(sup),(moda))
  
  def geometric(q):
      if q == 1.0:
          return 1
      U = 1.0 - random.random()
      G = int(ceil(log(U) / log(1.0 - q)))    
      return G
  
  # A class that represents the process of generation of Groups (arrivals)
  class Generador(Process):
      def generar(self, prob,interarribo, porc_torniq, porc_taq, porc_maq, min, max, moda, tsertaq, tsertor, tsermaq, loncal):                       
          global totalusuarios
          global cantgrupos
          totalusuarios=0
          cantgrupos=0
          while True:
              size_g = geometric (prob)
              if (now()&gt;loncal):
                  cantgrupos+=1
                  totalusuarios=totalusuarios+size_g
              for j in range (size_g):
                  c = Customer(name = "Usuario%02d"%(j,))
                  q = uniform (0,1)
                  ##******************the userr go to the tourniquet-------------------------
                  if (q&lt;=porc_torniq): #the userr go to the tourniquet
                      activate(c,c.go_torn(min=min, max=max, moda=moda, tsertor=tsertor)) #el cliente se desplaza     
                  ##******************the user walks to buy ticket on the office-------------------------     
                  if (q&gt;porc_torniq and q&lt;=porc_torniq+porc_taq): #user go to ticket station to buy
                      activate(c,c.go_tickets(min, max, moda, tsertaq=tsertaq, tsertor=tsertor))
  
                  ##******************the user walks to buy ticket machines-------------------------  
                  if (q&gt;porc_torniq+porc_taq): #user go to machines
                      activate(c,c.go_machines(min= min, max=max, moda=moda, tsermaq=tsermaq, tsertor=tsertor))
              t = expovariate(interarribo) #time between groups of users
              yield hold, self, t 
  
  class Customer(Process):
  
      def move(self, min, max ,moda):
          t1= triangulo(min_, max_, moda_)
          yield hold, self,t1
  
      def go_torn(self, min, max ,moda, tsertor):
          move(min, max, moda)
          yield request, self, torniquete
          t2= expovariate(tsertor)
          yield hold, self, t2
          yield release, self, torniquete
  
      def go_tickets(self, min, max ,moda, tsertaq, tsertor):
          move(min, max, moda)
          yield request, self, taquilla
          t3= expovariate(tsertaq)
          yield hold, self, t3
          yield release, self, taquilla
          go_torn(self, min, max,moda, tsertor)
  
      def go_machines(self, min, max ,moda, tsermaq, tsertor):
          move(min, max, moda)
          yield request, self, taquilla
          t4= expovariate(tsermaq)
          yield hold, self, t4
          yield release, self, taquilla
          go_torn(self, min, max ,moda, tsertor)
  
   ## Experiment data ------------------------------
  MedGru= 2.0
  p= 1/MedGru
  TasGru= 5.0
  LonCor = 24.0
  CanCor= 30
  CanTor = 2
  CanTaq=2
  CanMaq=2
  PorTor= 60.0/100.0
  PorTaq= 20.0/100.0
  PorMaq=20.0/100.0
  MinDes= 0.1
  MaxDes= 0.2
  LonCal= 2.0*60
  ModaDes= 0.15
  TSerTaq= 1/0.35
  TSerTor=1/0.1
  TSerMaq= 1/0.5
  
  ## Model/Experiment ------------------------------
  torniquete = Resource(capacity=CanTor, monitored=True, monitorType= Monitor)    
  maquina = Resource(capacity=CanMaq, monitored=False)    
  taquilla =  Resource(capacity=CanTaq, monitored=False)    
  def simulate_():
      generador = Generador(name="Grupo")
      initialize() #inicializa el reloj de simulacion
      activate(generador,generador.generar(p, TasGru,PorTor, PorTaq, PorMaq, 
                                                                  MinDes,MaxDes ,ModaDes, TSerTaq, TSerTor, TSerMaq, LonCal ))
      simulate(until=60*LonCor)
  for i in range(CanCor):
      simulate_()
      print "Groups:",cantgrupos, "Users:",totalusuarios
  </code></pre>
  
  <p>The code consists of 4 functions in the User class scroll, which uses a triangular  distribution to simulate displacement of a passenger inside the station, of the entrance to any area (ticket office, machines or tourniquets) and from one area to another, has a
  triangularly distributed random term with parameters min, mode and Max minutes.</p>
  
  <p>The time it takes to serve each passenger in a ticket office is a will distributed
  TSerTaq exponentially with a half minutes. Each passenger using a vending machine
  ticket is occupied during a random time exponentially distributed with mean TSerMaq
  minutes. Pass through a turnstile each passenger takes a random time distributed
  TSerTor exponentially with a half minutes.</p>
  
  <p>When I try to run my code, it tells me the following message:</p>
  
  <pre><code>C:\Documents and Settings&gt;python llegada.py
  Traceback (most recent call last):
    File "llegada.py", line 111, in &lt;module&gt;
      simulate_()
    File "llegada.py", line 109, in simulate_
      simulate(until=60*LonCor)
    File "C:\Python26\SimPy\Globals.py", line 39, in simulate
      return sim.simulate(until = until)
    File "C:\Python26\SimPy\Simulation.py", line 689, in simulate
      a = nextev()
    File "C:\Python26\SimPy\Simulation.py", line 408, in _nextev
      resultTuple = nextEvent._nextpoint.next()
    File "llegada.py", line 65, in go_tickets
      move(min, max, moda)
  NameError: global name 'move' is not defined
  </code></pre>
  
  <p>I do not understand what I'm doing wrong and why I move indicates that the object is not defined. Some help please</p>