Python では、関数とメソッドは第一級オブジェクトとみなされ、他のデータ型と同様に扱うことができます。ただし、ファーストクラス オブジェクトのユニークな側面の 1 つは、かっこなしでオブジェクトを使用できることです。
コード例の説明
提供されたコード スニペットは、objectTest の 2 つのインスタンスを初期化します。クラス a と b は同じ値です。出力は次のことを示しています。
括弧の省略
驚くべき結果は、最後の式 a.get_value == b.get_value です。 get_value が両方のオブジェクトで同じメソッドであっても、これは False と評価されます。これは、かっこがないとメソッドを呼び出すのではなく、関数オブジェクト自体にアクセスするために発生します。
省略が許可される理由
Python ではかっこの省略が許可されています。呼び出し可能オブジェクト (関数またはメソッド) 自体への参照を渡す簡潔な方法を提供します。これは、いくつかの状況で特に役立ちます。
コールバックの使用:
コールバックは、後で実行するために別の関数に渡される関数またはメソッドです。マルチプロセッシングの例に見られるように、括弧を省略するとコールバック参照を渡すことができます:
t = Process(target=my_long_running_function)
マッピング関数:
map 関数を使用する場合、括弧なしで呼び出し可能引数:
map(do_something, ['hey', 'what up', 'yo'])
動的呼び出し:
括弧を省略すると動的呼び出しが有効になり、コレクションから目的の呼び出し可能オブジェクトをフェッチして実行できます:
str_ops = {'<': lt, '>': gt, '==': eq} op = str_ops.get(my_operator) if op: result = op(lhs, rhs)
要約すると、関数またはメソッドを呼び出すときにかっこを省略すると、参照を効率的に渡すことができます。呼び出し可能オブジェクト自体に追加し、コールバック、動的呼び出し、マッピングなどのさまざまな機能を有効にします。
以上がPython の関数およびメソッド呼び出しで括弧の省略が許可されるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。