私は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. コンテキストマネージャ内での関数の部分的な適用( "with ..")
- 7. AngularJSの複数の独立した部分的な部分
- 8. バリデーションテンプレートメンバ関数の部分的な特殊化
- 9. C#の部分的なキーワードの実用的な使用方法
- 10. 参照を返すEcmascript関数の実際の例は?
- 11. 実際のプロットとは無関係に静的な凡例を作成
- 12. 静的関数と "hidden"可視属性を持つ関数の実際的な違いは何ですか?
- 13. Railsの部分的なベストプラクティス
- 14. 部分的なディレクトリリスト
- 15. JFreechart(Java) - 部分的に破線と部分的に実線の描画方法
- 16. 部分的なフォーム対部分的なフォームのためのRails規則
- 17. sscanf関数のFORMAT部分の使い方(または一般的なsscanf関数の使い方)
- 18. BSPベースのポリゴン三角形分割の実際の例
- 19. Basicsのような中置関数を部分的に適用する方法+。
- 20. 一般的な部分式の削除の実装
- 21. レイアウト上の部分的な部分のruby on rubyロジック
- 22. 複数のアセンブリにわたって部分的なメソッドを実装する
- 23. デリゲートの実際的な実装
- 24. 血清加水分解分離レベルの実際的な用途は?
- 25. URLネームスペースの実際の例
- 26. 実際の例のメモリリーク
- 27. Idrisの実際の例
- 28. C#の:部分的な方法とアクション、非実装体
- 29. 2つの異なる部分の関数を計算する
- 30. 部分的なポストバックとjquery
を「モジュールのインポート*から」悪いスタイルで、例のスニペットでそれを周囲に広がりません。 – ddaa
@ddaa:私は同意しない。汎用ユーティリティの「配管」をインポートする場合など、しばしば適切です。 – Marcin
便利です(アプリケーションを書くためにtkinterからすべてのオブジェクトをインポートするような)場合がありますが、例のスニペットでは避けるのが最善です。 2つのライブラリからそれを行うのは、それぞれがどこから来ているのかわからないので、特に混乱します。ああ、「機能的」ではなく「functools」を意味しましたか? –