Cambio inesperado de valores de lista

Esta es mi clase:

class variable(object):
    def __init__(self, name, name_alias, parents,values,table):
    #name of the variable
    self.name = ""

Esta es la función con problemas:

f es un archivo .txt (abierto en "función principal")

def read_problem(f):
    list_of_variables=[]
    entry=0;

    for line in f:
        words = line.split()

        #enters only if it's not a comment
        if (words[0]!='#'):

            if (words[0]=="VAR"):
                x=variable;
            elif (words[0]=="name"):
                x.name=words[1]
                list_of_variables.append(x)

    for i in range(len(list_of_variables)):
        print(list_of_variables[i].name)
    return

mi archivo .txt es:

VAR
name MaryCalls
VAR
name JohnCalls
VAR
name Burglary
VAR
name Earthquake
VAR
name Alarm

Lo que obtengo en esa impresión (y por lo tanto, la lista) es:

Alarma

Alarma

Alarma

Alarma

Alarma

Pero yo quería tener:

MaryCalls

JohnCalls

Robo

Terremoto

Alarma

Que pasa ¿Por qué están cambiando todas las entradas anteriores de la lista?

¡Gracias!