Python e passagem de referência. Limitação?

Eu gostaria de fazer algo como o seguinte:

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

def factory(foo):
    foo = Foo()

aTestFoo = None
factory(aTestFoo)

print aTestFoo.member

No entanto, ele cai comAttributeError: 'NoneType' object has no attribute 'member': o objetoaTestFoo não foi modificado dentro da chamada da funçãofactory.

Qual é a maneira pythonic de realizar isso? É um padrão para evitar? Se é um erro atual, como é chamado?

Em C ++, no protótipo de função, eu teria adicionado uma referência ao ponteiro a ser criado na fábrica ... mas talvez esse não seja o tipo de coisa que eu deva pensar em Python.

Em C #, há a palavra chaveref que permite modificar a referência em si, muito perto do caminho do C ++. Eu não sei em Java ... e eu me pergunto em Python.

questionAnswers(4)

yourAnswerToTheQuestion