Python i przekazywanie referencji. Ograniczenie?
Chciałbym zrobić coś takiego:
class Foo(object):
def __init__(self):
self.member = 10
pass
def factory(foo):
foo = Foo()
aTestFoo = None
factory(aTestFoo)
print aTestFoo.member
Jakkolwiek się zawieszaAttributeError: 'NoneType' object has no attribute 'member'
: obiektaTestFoo
nie został zmodyfikowany w wywołaniu funkcjifactory
.
Jaki jest pythoniczny sposób na wykonanie tego? Czy to wzór, którego należy unikać? Jeśli jest to aktualny błąd, jak się nazywa?
W C ++, w prototypie funkcji, dodałbym odniesienie do wskaźnika, który ma zostać utworzony w fabryce ... ale może nie jest to rodzaj rzeczy, o których powinienem myśleć w Pythonie.
W języku C # jest słowo kluczoweref
co pozwala modyfikować samo odwołanie, naprawdę blisko C ++. Nie wiem w Javie ... i zastanawiam się w Pythonie.