Python und Referenzübergabe. Verjährung?

Ich würde gerne so etwas machen:

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

def factory(foo):
    foo = Foo()

aTestFoo = None
factory(aTestFoo)

print aTestFoo.member

Allerdings stürzt es mit abAttributeError: 'NoneType' object has no attribute 'member': das ObjektaTestFoo wurde im Funktionsaufruf nicht geändertfactory.

Was ist die pythonische Art, das zu tun? Ist es ein zu vermeidendes Muster? Wie heißt es, wenn es sich um einen aktuellen Fehler handelt?

In C ++ hätte ich im Funktionsprototyp einen Verweis auf den Zeiger hinzugefügt, der in der Factory erstellt werden soll ... aber vielleicht sollte ich in Python nicht über diese Dinge nachdenken.

In C # gibt es das Schlüsselwortref Das erlaubt es, die Referenz selbst zu modifizieren, ganz in der Nähe des C ++ Weges. Ich weiß es nicht in Java ... und ich wundere mich in Python.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage