私は次のようなことをしたいと思います:
class Foo(object):
def __init__(self):
self.member = 10
pass
def factory(foo):
foo = Foo()
aTestFoo = None
factory(aTestFoo)
print aTestFoo.member
ただし、次のようにクラッシュしAttributeError: 'NoneType' object has no attribute 'member'
ます。オブジェクトaTestFoo
は関数の呼び出し内で変更されていませんfactory
。
それを実行するためのpythonicの方法は何ですか?避けるべきパターンですか?それが現在の間違いである場合、それはどのように呼ばれますか?
C ++では、関数プロトタイプで、ファクトリで作成されるポインタへの参照を追加していました...しかし、これはPythonで考えるべきことではないかもしれません。
C#には、参照自体を変更できるキーワードがありref
、C++の方法に非常に近いものです。私はJavaではわかりません...そしてPythonでは疑問に思います。