私はPythonのpartial関数を実行しています。面白いと感じましたが、別の言語機能として学習するのではなく、実際の例を使って理解できると便利です。ここに私の質問に部分的な関数の実際の例
3
A
答えて
-1
ルック:Does python have a built-in function for interleaving generators/sequences?
from itertools import *
from functional import *
compose_mult = partial(reduce, compose)
leaf = compose_mult((partial(imap, next), cycle, partial(imap, chain), lambda *args: args))
あなたは、私が(マップや軽減)機能をイテレータに渡すことができ、単一の引数関数を作成するために、部分的なアプリケーションを使用していることがわかります。
11
私はしばしばデフォルトのstdout
ではなくstderr
に印刷しています。
from __future__ import print_function
import sys
from functools import partial
print_stderr = partial(print, file=sys.stderr)
print_stderr('Help! Little Timmy is stuck down the well!')
あなたはその後、使用できるprint
機能で撮影した他の引数を持つ:
print_stderr('Egg', 'chips', 'beans', sep=' and ')
6
、例えばTkinterのコードを書くときに、コールバック関数に識別子データを追加するために別の例がありますパラメータなしでTkinterコールバックが呼び出されるためです。
だから、私はテンキーを作成したいとして、押されたボタンを知っている:
import Tkinter
from functools import partial
window = Tkinter.Tk()
contents = Tkinter.Variable(window)
display = Tkinter.Entry(window, textvariable=contents)
display.pack()
def clicked(digit):
contents.set(contents.get() + str(digit))
counter = 0
for i, number in enumerate("7894561230"):
if not i % 3:
frame = Tkinter.Frame(window)
frame.pack()
button = Tkinter.Button(frame, text=number, command=partial(clicked, number))
button.pack(side="left", fill="x")
Tkinter.mainloop()
+1
+1他のGUIライブラリ(PyQt、wxなど)でも便利です。 – reclosedev
関連する問題
- 1. Kivy Python - 部分的なコールバック関数
- 2. Boost :: MPLの実際的な使用例?
- 3. 部分的に特化したメンバ関数の実装
- 4. スカラで部分的に実装された部分関数を拡張する
- 5. 関数引数の部分的な束縛
- 6. 部分的なナップザックJavaの実装
- 7. コンテキストマネージャ内での関数の部分的な適用( "with ..")
- 8. C#:動的に部分的な関数を作成する
- 9. AngularJSの複数の独立した部分的な部分
- 10. 関数実行の遅延部分JavaScriptとexit関数
- 11. Phoenixと関数シグネチャの部分的な更新
- 12. バリデーションテンプレート関数の部分的な特殊化
- 13. バリデーションテンプレートメンバ関数の部分的な特殊化
- 14. モナドリーダーと関数の部分的な適用
- 15. は何必要ない()実際に、例えばファイルや関数
- 16. C#の部分的なキーワードの実用的な使用方法
- 17. Railsの魔法の部分的な部分的な反復
- 18. 参照を返すEcmascript関数の実際の例は?
- 19. 実際のプロットとは無関係に静的な凡例を作成
- 20. スロー例外メソッドの引数は、単に部分的に
- 21. 部分テンプレート関数specialisation with enable_if:既定の実装を実装
- 22. 例外の後にマップの部分的な結果を取得
- 23. PyQtの基本的な例を実装する際のエラー
- 24. 補間関数の部分微分
- 25. Observable.never()関数の実際の目的は何ですか?
- 26. GoLangの部分的なHTML
- 27. CodeIgniterの部分的なビュー
- 28. Railsの部分的なベストプラクティス
- 29. GITの部分的なマージ
- 30. 静的関数と "hidden"可視属性を持つ関数の実際的な違いは何ですか?
を「モジュールのインポート*から」悪いスタイルで、例のスニペットでそれを周囲に広がりません。 – ddaa
@ddaa:私は同意しない。汎用ユーティリティの「配管」をインポートする場合など、しばしば適切です。 – Marcin
便利です(アプリケーションを書くためにtkinterからすべてのオブジェクトをインポートするような)場合がありますが、例のスニペットでは避けるのが最善です。 2つのライブラリからそれを行うのは、それぞれがどこから来ているのかわからないので、特に混乱します。ああ、「機能的」ではなく「functools」を意味しましたか? –