私はリストバズを取る関数fooを持っており、FOOに、私はそうのようなバズをクリアしたかったと言う:Pythonのポインタあいまい
baz = []
foo(baz)
foo(baz):
baz = []
さて、このコードは、私はそれをしたいと思う何をしません。これは、bazという新しいローカルリストを作成するためです。私はこれを行うための他の方法があることを知っているが、私はPythonの文
baz = []
は、新しい空のチャンクで外側のスコープのバズ変数を指すようにはPythonを伝えると解釈される可能性があり、このようなあいまいさを解決する知っていただきたいと思います空のメモリチャンクを指す新しいポインタを作成することができます。
EDIT
私はリストをクリアする方法を求めていないですのでご注意ください。私はPythonインタープリタの動作について尋ねています。 downvotingの前に質問をはっきりと読んでください。
をさて私は、リストをクリアする方法を知っています。私はちょうどdel foo [:]を使いましたPyhton通訳がこのような状況をどのように見ているのか疑問に思っていました。 –
割り当ては、 'global'キーワードを使用しない限り、常にローカル変数として解釈されます。しかし、パラメータ 'baz'を指定したので、グローバル' baz'を参照することはできません。 Pythonの変数はC、Javaなどの変数に似ていません。この偉大な話を見てください:https://www.youtube.com/watch?v=_AEJHKGk9ns –
コードを実行することでインタープリタの動作を見ることができます。何についてあなたは実際に尋ねていますか?可変スコープですか? – TigerhawkT3