AttributeError: o objeto 'NoneType' não tem atributo 'append'

Eu tenho um problema estranho com python passando uma lista como parâmetro para uma função. Aqui está o código:

def foobar(depth, top, bottom, n=len(listTop)):
    print dir(top)
    print top.append("hi")
    if depth > 0:
        exit()
    foobar(depth+1, top.append(listTop[i]), bottom.append(listBottom[i]))

top = bottom = []
foobar(0, top, bottom)

Ele diz que o objeto "AttributeError: 'NoneType' não tem nenhum atributo 'append'", porque top é None em foobar, embora dir (top) imprima um atributo completo e uma lista de métodos de uma lista de tipos. Então, oque há de errado? Eu só queria passar duas listas como parâmetros para essa função recursiva.

questionAnswers(2)

yourAnswerToTheQuestion