Estoy escribiendo un programa tonto en python para un amigo que imprime "¡Somos los caballeros que dicen 'Ni'!". luego duerme por 3 segundos, y luego imprime "Ni!" Veinte veces a intervalos aleatorios utilizando el método random
del módulo uniform()
. Aquí está mi código:Python: "nombre global 'time' no está definido"
from time import sleep
import random
def knights_of_ni():
generator = random.Random()
print "We are the knights who say 'ni'."
sleep(3)
for i in range(0,20):
print "Ni!"
sleep(generator.uniform(0,2))
He tratado de importar este módulo escribiendo en el intérprete from silly import knights_of_ni()
yimport silly
, a continuación, llamar a la función, ya sea con knights_of_ni()
o silly.knights_of_ni()
(respectivamente), pero siempre tengo la misma excepción :
NameError: global name 'time' is not defined
¿Qué causa este error y cómo puedo corregirlo?
Editar: francamente, no estoy seguro de qué problema tenía yo tampoco. Ejecuté el código a la mañana siguiente y funcionó bien. Juro que el código produjo errores anoche ... De todos modos, gracias por tu visión.
Es muy importante que dé un paso atrás y comprenda correctamente cómo funciona 'import'. De lo contrario perderás mucho tiempo cambiando aleatoriamente tu código para que funcione. Tal vez deberías hacer otra pregunta sobre lo que no entiendes sobre 'import' –
@gnibbler: definitivamente entiendo el comando de importación, usarás' import spam' para obtener un módulo completo, luego llamarás a cada función como 'spam.eggs() ', y usaría' from spam import eggs' para obtener una función específica y el espacio de nombres 'spam' para que pueda llamar a la función' eggs() '. –