ホームページ > バックエンド開発 > Python チュートリアル > Python の関数およびメソッド呼び出しで括弧の省略が許可されるのはどのような場合ですか?

Python の関数およびメソッド呼び出しで括弧の省略が許可されるのはどのような場合ですか?

Barbara Streisand
リリース: 2024-11-29 02:36:09
オリジナル
826 人が閲覧しました

When is Parentheses Omission Allowed in Python Function and Method Calls?

関数およびメソッド呼び出しにおける括弧の省略について

Python では、関数とメソッドは第一級オブジェクトとみなされ、他のデータ型と同様に扱うことができます。ただし、ファーストクラス オブジェクトのユニークな側面の 1 つは、かっこなしでオブジェクトを使用できることです。

コード例の説明

提供されたコード スニペットは、objectTest の 2 つのインスタンスを初期化します。クラス a と b は同じ値です。出力は次のことを示しています。

  • a == b は、異なるオブジェクトであるため False と評価されます。
  • a.get_value() == b.get_value は、
  • a.get_value() == b.get_value() も同じ値に対して True と評価されます。 reason.

括弧の省略

驚くべき結果は、最後の式 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート