最初にコードを書く
問題: コメントに書いたように、TestWriter.write() を呼び出したときに sys.stdout のリダイレクトされた出力が実装されていませんでしたが、その後の出力により、標準出力がファイル f オブジェクトにリダイレクトされたことがわかりました。 ブレークポイントを追跡すると、self.stream も f オブジェクトとして表示されます 疑問を解決しましょう! ! !
小伙看你根骨奇佳,潜力无限,来学PHP伐。
リーリー
Pythonが各関数を作成するとき、各パラメータはバインドされ、値が変更されてもデフォルト値はリロードされません
ただし、バインディングパラメータのデフォルトパラメータがアドレスにバインドされている場合は異なりますが、アドレスは変更されませんが、内容は変更される可能性があります。
対照的に、Python では、実行は 1 つのファイルの先頭から始まり、ファイル内の各ステートメントを明確に定義された順序で進みます。...
http://stackoverflow.com/ques...
Python は各ステートメントを順番に解釈するため、TestWriter的构造器参数stdout はリダイレクトされません。
TestWriter
stdout
上記はすべて私の推測です
================================================ === ====================
実行結果
リーリー
Pythonが各関数を作成するとき、各パラメータはバインドされ、値が変更されてもデフォルト値はリロードされません
リーリーただし、バインディングパラメータのデフォルトパラメータがアドレスにバインドされている場合は異なりますが、アドレスは変更されませんが、内容は変更される可能性があります。
リーリーhttp://stackoverflow.com/ques...
Python は各ステートメントを順番に解釈するため、
TestWriter
的构造器参数stdout
はリダイレクトされません。上記はすべて私の推測です
================================================ === ====================
リーリー実行結果