Pitón y paso de referencia. ¿Limitación?

Me gustaría hacer algo como lo siguiente:

class Foo(object):
    def __init__(self):
        self.member = 10
        pass

def factory(foo):
    foo = Foo()

aTestFoo = None
factory(aTestFoo)

print aTestFoo.member

Sin embargo, se estrella conAttributeError: 'NoneType' object has no attribute 'member': el objetoaTestFoo No se ha modificado dentro de la convocatoria de la función.factory.

¿Cuál es la forma pitónica de realizar eso? ¿Es un patrón a evitar? Si es un error actual, ¿cómo se llama?

En C ++, en la función prototipo, habría agregado una referencia al puntero que se creará en la fábrica ... pero tal vez este no sea el tipo de cosas en las que debería pensar en Python.

En C #, está la palabra clave.ref Eso permite modificar la referencia en sí, muy cerca de la forma C ++. No sé en Java ... y me pregunto en Python.

Respuestas a la pregunta(4)

Su respuesta a la pregunta