Python NameError: el nombre no está definido

Tengo una secuencia de comandos de python y recibo el siguiente error:

Traceback (most recent call last): File "C:\Users\Tim\Desktop\pop-erp\test.py", line 1, in  s = Something() NameError: name 'Something' is not defined 

Aquí está el código que causa el problema:

 s = Something() s.out() class Something: def out(): print("it works") 

Esto se está ejecutando con Python 3.3.0 en Windows 7 x86-64.

¿Por qué no se puede encontrar la clase de Something ?

Related of "Python NameError: el nombre no está definido"

Define la clase antes de usarla:

 class Something: def out(self): print("it works") s = Something() s.out() 

Necesitas self como primer argumento a todos los métodos de instancia.

Debe definir la clase antes de crear una instancia de la clase. Mueve la invocación de Something al final del script.

Puede intentar poner el carro antes que el caballo e invocar los procedimientos antes de que se definan, pero será un truco feo y tendrá que rodar el suyo como se define aquí:

Hacer que la definición de la función en un archivo de python sea independiente