Python では、値がスコープに入る方法が 3 つあります。パラメータとして渡される方法、外側のスコープからアクセスできる方法、最後に、外側のクラスと外側の関数の最初のパラメータが で使用可能になる方法super()
です。他のケースに拡張できるように、このメカニズムを開発者に公開してみませんか?
__context__
ChainMap
どこでも利用でき、物事を公開するを持っている方がクリーンではないでしょうか? デフォルトでは、クラスの定義を入力すると、クラス自体が公開され__context__['__class__']
、非静的で非クラスのメンバー関数を入力すると、最初のパラメーターがとして公開され__context__['self']
ます。しかし、一般的には、次のような構造でもっと多くのことができます
entercontext {'blah': 123}:
f(__context__['blah'])
これにより、dict が ChainMap にプッシュされ、スコープを終了するときにポップされます。
set_printoptions
これは、 numpy /などの他の多くの設定のケースを実装するために使用できますget_printoptions
。取得、設定、および復元の代わりに、それらをコンテキストにプッシュするだけです。