En su código:
class User:
UserName
Password
UserName
y Password
son interpretados como expresiones. Como no han sido asignados en este punto, obtienes un NameError
.
En Python, una variable debe definirse con una declaración de asignación antes de poder usarse en una expresión, de lo contrario se obtiene un NameError. Tenga en cuenta que "antes" aquí significa "orden de ejecución", no "orden de código fuente". Hay un poco más de eso (instrucciones de importación, globales, hacks de espacio de nombres), pero vamos a hacerlo simple aquí.
La manera idiomática de definir una variable "sin un valor" es asignarle el valor None
.
Además, su código parece que realmente quiere miembros de la instancia y no miembros de la clase.La forma idiomática para hacerlo, como se reconoce en algunas herramientas de análisis estático tales como pylint
, es:
class User(object):
def __init__(self):
self.username = None
self.password = None
Además, es un buen estilo de Python para derivar todas las clases de "objeto", por lo que utilizar las clases de nuevo estilo y para nombrar la variable de instancia con la convención lowercase_with_underscore o initialLowerWithCaps. El estilo de InitialCaps está universalmente reservado a los nombres de las clases.
El tutorial de Python está aquí: http://docs.python.org/tutorial/index.html Es bastante bueno si ya has hecho la programación. –
¿Por qué querrías hacer eso? – sykora
La frase "sin una variable" probablemente estaba destinada a ser "sin valor". –