問題タブ [callable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3556 参照

python - Python TypeError: 'module' object is not callable を解決するにはどうすればよいですか?

データベースにクエリを実行して値を取得し、ネットワーク グラフを作成する一連の Python クラスを作成しようとしています。問題は、クラスの 1 つのコンストラクターを呼び出そうとするたびにこのエラーが発生することです。関連するコードは次のとおりです。

そして QueryService クラスからの関連ビットは

また、必要なライブラリもすべてインポートしました

0 投票する
3 に答える
140 参照

django - str var を呼び出し可能にする方法

私が欲しいのは、文字列変数を呼び出し可能にすることです。私はさまざまなmodels_namesのリストを持っているだけで、このように作成メソッドを呼び出したいと思っています。

これは、次のように php を使用して開発することが可能です。

Djangoを使用してこれが可能かどうかは誰にもわかりますか?? これにより、私のコードが大幅に簡素化されます。

どうもありがとう!

0 投票する
2 に答える
1739 参照

recursion - 再帰メソッドで Future と Callable を使用するには?

Future と Callable を使用して、dfs 再帰メソッドを並列に変換して効率を改善しようとしています。しかし、それを正しく行う方法がわかりません。コードは次のとおりです。

私が期待しているのは、再帰メソッドが task.get() の戻り値を待たずに計算を続けることです。したがって、深さ 3 に進むたびに、将来のタスクを送信し、別の子を計算するために戻りますが、タスクは同時に独自のサブツリーを計算します。

ただし、この方法はまだ並列ではなく、順番に行われていることがわかりました。(メソッドが呼び出されるたびに深さを出力しましたが、結果はフューチャーとエグゼキューターを使用しないメソッドと同じで、常に遅くなりました。)

これは Future と Callable を使用する正しい方法ではないと思います。いくつかの例を見つけましたが、再帰的な方法を使用していません。最も一般的な例は、Future List> のリストを持ち、毎回タスクを送信し、その後別のループで Future リストを反復することです。

Future と Executor を再帰的な方法で実装する方法を知っている人はいますか?

0 投票する
4 に答える
4207 参照

coding-style - 呼び出し可能なオブジェクトを表すクラス名に名詞を使用しますか?

ここでは、より一般的な質問があります。これはその延長と考えてください。

クラスはオブジェクトのタイプを表し、名前として名詞を使用する必要があることを理解しています。しかし、多くの言語でサポートされている、オブジェクトというよりも関数のように振る舞う関数オブジェクトがあります。これらのクラスにも名詞として名前を付ける必要がありますか、その場合は動詞でかまいません。doSomething()、意味的には、 よりも理にかなっていSomething()ます。

更新/結論

これについて私が得た上位2つの回答は、さまざまな意見を共有しています。

アッティラ

ただし、ファンクターの場合、それらは「アクション」を表すため、動詞 (または何らかの名詞と動詞の組み合わせ) を使用して名前を付ける方が適切です。関数の動作に基づいて名前を付けるのと同じです。

ルーク

一方、ファンクターのインスタンスは事実上関数であり、それに応じて名前を付けたほうがよいでしょう。上記のジムの提案に従って、SomethingDoer doSomething; doSomething();

いくつかのコードを実行した後、どちらも一般的な方法のようです。stl の GNU 実装で、、、(bits/stl_function.h) などのクラスを見つけましたnegateplusそしてminusvariate_generator( mersenne_twistertr1/random.h)。同様に、boostbase_visitorでは、predecessor_recorder(graph/visitors.hpp)inverseinplace_erase(icl/functors.hpp)のようなクラスを見つけました。

0 投票する
2 に答える
295 参照

python - 呼び出し可能なオブジェクトをインスタンスに暗黙的にバインドする

私はこのコードを持っています:

そして、他のユーザー定義関数と同じようLFSeq.__iter__に、インスタンスにバインドされるようになることを明示的に望んでいます。LFSeq

ただし、クラスではなくユーザー定義関数のみがバインドされているため、この方法では機能しません。

のような関数デコレータを紹介すると

それから私はそれで飾ることができ__iter__、それは機能します:

しかし、これはどういうわけかハッキーで一貫性がないように感じます。他に方法はありますか?そうすべきですか?

そうでなければ、もはや同じオブジェクト(つまりクラスオブジェクト)ではなくなるので、私はそうだと思いLFSeq.__iter__ますLFSeq(None).__iter__。たぶん、有界関数についてのすべては、実行時にそれを持っているのではなく、構文糖衣であるべきでした。しかし、反対に、構文糖衣は実際にはコンテンツに依存するべきではありません。どこかでトレードオフが必要だと思います。

0 投票する
3 に答える
133409 参照

python - sum()関数を使用すると、「int」オブジェクトが呼び出せないというエラーが発生するのはなぜですか?

範囲で合計関数を使用するとエラーが発生する理由を理解しようとしています。

コードは次のとおりです。

そしてここにエラーがあります:

私はエラーについてこの説明を見つけました:

Pythonでは、「呼び出し可能」は通常関数です。このメッセージは、数値(> "int")を関数( "callable")であるかのように扱っていることを意味します。そのため、Pythonは何をすべきかわからないため、停止します。

また、sum()はリストで使用できることを読んだので、ここで何が問題になっているのでしょうか。

IDLEモジュールで試してみたところ、問題なく動作しました。ただし、Pythonインタープリターでは機能しません。それがどのようになり得るかについてのアイデアはありますか?

0 投票する
1 に答える
1602 参照

function - 'myType' のセットを返す JDBC Postgres ストアド関数呼び出し

データベースを SQL インジェクションから保護しようとしています。定義済みのデータ型の SETOF を返す多くのストアド関数があります。例えば:

これらのストアド プロシージャを Java フロントエンドから呼び出したいと思います。私が読んだことから、SQL インジェクションに関しては CallableStatement を使用する方が安全です。これは私がこれまでに持っているものです:

execute() メソッドを使用しようとすると、ResultSet rs をブール値に設定するように求められます。そのまま実行すると (executeQuery())、returnType の最初のフィールド (userId) のみが ResultSet に表示されます。

ストアドプロシージャをそのまま呼び出す場合:

正しいデータを取得します。

また、データベースを SQL インジェクションから保護するためのヒントが他にある場合は、親切に指摘してください。アプリケーションが使用する特定の Postgres ロールを作成し、データベースに接続するための ConnectionPool (c3p0) を実装しました。アプリケーションはローカル ネットワークで実行されます。SQL インジェクション攻撃 (コメント --、セミコロン、*、および DELETE などの他の SQL コマンド) を回避するために、さまざまな Java Swing コンポーネントからのユーザー入力を検証しています。

どんな入力でも大歓迎です。

ありがとう。

0 投票する
0 に答える
608 参照

java - Jython: java.util.concurrent.Callable に相当する pythonic?

pythonic Thread サブクラスと組み合わせて単純な pythonic キューを使用しています...

... したがって、送信するのはリストであり、その最初の項目はメソッドであり、オプションのその他の要素はメソッドに提供する任意のパラメーターです。NB は Java でこの種の楽しいことを行うことはできません!

問題は、呼び出されたメソッドから値を返す単純な pythonic メソッドがあるかどうかです。Java では明らかに、操作する Callable および Future インターフェースがあります。そして、そのようなJavaクラスをさらに使用すると、コードがどのように変更されるかがわかります...実際、いくつかの可能性があると思います。しかし、Python には「未来」タイプの状況に対処するための規定があるかどうか疑問に思っただけです。

ところで、私は Definitive Guide を見ました

後で:

興味のある方は、これが私の Java 指向のソリューションです。

典型的な出力:

スレッド 20 - Future.get() を待っています...

スレッド 21 - FindNodeMapSizeTask.call() 内

スレッド 20 - ... 取得した Future.get(): 1121

ツリーサイズ: 1121

size_result.get() は、def send() で method_call_elements = self.input_queue.get() の後に sleep( 1 ) が配置されていても、len( ... ) が結果を配信するまで size( lmm_self ) からの戻りをブロックします。

問題なく動作しますが、もちろん Java FutureTask を使用します。これに対するpythonicの解決策は私にとって興味深いでしょう...

後でまだ

うーん... Beasley Python Essential Referenceを参照すると、これらの行に沿ってthreading.Eventを使用してsthgを実行するかなり明確な方法がわかります...

0 投票する
1 に答える
346 参照

python - デリゲート関数の実行時にこの Python トレースバックが悪いのはなぜですか

イベント デリゲート パターンを可能にする検索クラスがあります。他のクラスは、検索が更新されたときに呼び出される関数を登録できます。

問題がある場合、トレースバックはレシーバー関数を示していません。例えば:

私の検索クラスはこれを実行します...

...デリゲート関数の署名が間違っている場合...

...私はこれを見る...

例外メッセージのデリゲート関数名は正しいが、トレースバックはそこまで到達していないことに注意してください。

エラーは、デリゲート署名にパターン引数が必要なためです。問題は、このエラーが発生している場所がトレースバックに表示されないことです。参照が指している関数オブジェクトまでさかのぼる必要があります。

これを修正する方法はありますか?

注: コードと説明を更新しました。追加のコードで問題を混乱させたくはありませんでしたが、もっと表示する必要があると感じました。これは、機能をトリガーするものを示していませんonTextChanged()。これは実際には Qt ウィジェットの実装の一部であり、誰かが QLineEdit に入力すると、この関数が実行されます。パターンは、親ウィジェットが検索ウィジェットを作成し、テキストが変更されたときに呼び出される関数を接続します。これが役立つことを願っています。

0 投票する
1 に答える
167 参照

python - Python:呼び出し可能なオブジェクトをリストしますか?

呼び出し可能なオブジェクトのみをリストしようとしていますが、何か間違っているようです。例えば、

ただし、これは間違っています。たとえば、{}.__doc__明らかに文字列などです。リスト内包表記の何が問題になっていますか