__call__メソッドのパラメーターとして* argsと** kargsを使用するデコレーター関数。

mdjbanuelos

私は現在、デコレータクラスで特定のブール値がTrueに設定されている場合に、関数のアノテーションをチェックすることになっているデコレートされた関数を使用しています。私が少し混乱しているのは、デコレータ関数の__call__メソッドヘッダーです。

def __call__(self, *args, **kargs):

およびそのパラメータリスト。

そのパラメータ*args**kargsが関数に提供される引数に使用されることを理解していますが、私が扱っている問題では、元の関数(という名前のデコレータクラスから作成されたインスタンスオブジェクトの属性)を呼び出す必要があります_f

_f装飾された関数に提供された引数を使用して呼び出すにはどうすればよいですか?args/kargsが空であるかどうかを確認し、空でないパラメーターに対してself._f(args)/self._f(kargs)呼び出す必要がありますか?

チェプナー

メソッドを装飾する場合:

class Foo:

    @someDecorator
    def my_method(self, x, y):
        ...

それはまだ実際には方法ではありません。それは単なる機能です。デコレータの内部では、次のように扱います。

def someDecorator(f):
    def _(*args, **kwargs):
        ...
        return f(*args, **kwargs)
    return _

ときに_呼び出され、self中に含まれる*args引数。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

クラス関数を他のクラスメソッドのパラメータとして使用する方法

分類Dev

関数へのパラメーターとしてメソッドを使用するc ++

分類Dev

パラメータとしてのJavaパスメソッド

分類Dev

メソッドを関数パラメーターとして渡す

分類Dev

関数をパラメーターとしてメソッドに渡す

分類Dev

拡張メソッドのパラメータとして関数を使用する方法は?

分類Dev

テンプレート関数C ++のF &&、Args && ...パラメーターの後にパラメーターとして別の関数を追加する

分類Dev

C#のメソッドパラメータとしてLINQselectを使用する

分類Dev

関数をパラメーターとして使用するラップメソッド

分類Dev

メソッドをパラメーターとして渡す

分類Dev

メソッドをパラメーターとして渡す

分類Dev

メソッドパラメータとして複数の値を渡す

分類Dev

cythonのテンプレートパラメータとして関数ポインタを使用してC ++コードをラップする

分類Dev

タイプreflect.runtime.universe.MethodMirrorの関数をパラメーターとしてメソッドに渡す

分類Dev

メソッドをパラメーターとして別のメソッドに渡しますが、パラメーターを使用します

分類Dev

メソッドのパラメーターとしてクラスを渡し、Ifステートメントでこのパラメーターを使用する

分類Dev

TypeScriptsデコレータを使用してメソッドパラメータの値を検証することは可能ですか?

分類Dev

Java 8のメソッドをパラメーターとして渡す

分類Dev

メソッドのパラメーターとして配列を渡す

分類Dev

メソッドの名前をパラメーターとして渡す

分類Dev

Pythonのパラメーターとしてメソッドを渡す

分類Dev

メソッドパラメータとして関数ポインタを使用する

分類Dev

パラメータとしてメソッドを渡す

分類Dev

java:Rawパラメーターをメソッドパラメーターとして使用すると、パラメーターメンバーのすべてのパラメーター化された型情報がエラーになる

分類Dev

メソッドの実装をパラメータとして送信する

分類Dev

別のメソッドのパラメータとしてvoid関数を挿入する方法

分類Dev

C#の関数パラメーターとしてSTATICメソッドへの参照を渡す方法は?

分類Dev

デザインパターン:メソッドパラメータとしてのコールバック

分類Dev

メソッドをパラメーターとしてJavaの別のメソッドに渡す

Related 関連記事

  1. 1

    クラス関数を他のクラスメソッドのパラメータとして使用する方法

  2. 2

    関数へのパラメーターとしてメソッドを使用するc ++

  3. 3

    パラメータとしてのJavaパスメソッド

  4. 4

    メソッドを関数パラメーターとして渡す

  5. 5

    関数をパラメーターとしてメソッドに渡す

  6. 6

    拡張メソッドのパラメータとして関数を使用する方法は?

  7. 7

    テンプレート関数C ++のF &&、Args && ...パラメーターの後にパラメーターとして別の関数を追加する

  8. 8

    C#のメソッドパラメータとしてLINQselectを使用する

  9. 9

    関数をパラメーターとして使用するラップメソッド

  10. 10

    メソッドをパラメーターとして渡す

  11. 11

    メソッドをパラメーターとして渡す

  12. 12

    メソッドパラメータとして複数の値を渡す

  13. 13

    cythonのテンプレートパラメータとして関数ポインタを使用してC ++コードをラップする

  14. 14

    タイプreflect.runtime.universe.MethodMirrorの関数をパラメーターとしてメソッドに渡す

  15. 15

    メソッドをパラメーターとして別のメソッドに渡しますが、パラメーターを使用します

  16. 16

    メソッドのパラメーターとしてクラスを渡し、Ifステートメントでこのパラメーターを使用する

  17. 17

    TypeScriptsデコレータを使用してメソッドパラメータの値を検証することは可能ですか?

  18. 18

    Java 8のメソッドをパラメーターとして渡す

  19. 19

    メソッドのパラメーターとして配列を渡す

  20. 20

    メソッドの名前をパラメーターとして渡す

  21. 21

    Pythonのパラメーターとしてメソッドを渡す

  22. 22

    メソッドパラメータとして関数ポインタを使用する

  23. 23

    パラメータとしてメソッドを渡す

  24. 24

    java:Rawパラメーターをメソッドパラメーターとして使用すると、パラメーターメンバーのすべてのパラメーター化された型情報がエラーになる

  25. 25

    メソッドの実装をパラメータとして送信する

  26. 26

    別のメソッドのパラメータとしてvoid関数を挿入する方法

  27. 27

    C#の関数パラメーターとしてSTATICメソッドへの参照を渡す方法は?

  28. 28

    デザインパターン:メソッドパラメータとしてのコールバック

  29. 29

    メソッドをパラメーターとしてJavaの別のメソッドに渡す

ホットタグ

アーカイブ