最近、私はサルのパッチ技術について読んで、それが言えるかどうか疑問に思いました。猿のパッチ技術のpythonの例のデコレータですか?
1
A
答えて
3
デコレータは場合引数として関数を取り、別の値(ないnecessarly関数)を用いてオブジェクトのフィールドの値を置き換える=機能
モンキーパッチを返す関数
を=機能の猿のパッチは、デコレータを介して実行することができます。ですから、私はデコレータが猿のパッチの一例と考えられるかもしれないと思います。しかし、一般的にサルのパッチ適用とは、第三者のライブラリの動作を変更することです。その場合、デコレータはそれほど有用ではありません。
2
いくつかの文法レベルでは、それらは同等かもしれません。しかし、デコレータは関数またはクラスが定義された時点で適用され、実行時にオブジェクトを変更することにより、精神的にも実際の使用においても非常に異なったものになります。
関連する問題
- 1. Pythonオーバーレイ:猿パッチの場合
- 2. ビデオストリーミング技術の技術
- 3. PHP 7での猿のパッチ適用
- 4. Pythonでの金融技術分析
- 5. Pythonで猿のパッチを当てる方法
- 6. エアプレイの技術ライセンス
- 7. アプリケーションレベルのロードバランシング技術
- 8. サーバーのJavaEE技術
- 9. Nativescript PUSHの技術
- 10. はWinFormのフロントエンド技術ですか?
- 11. 私の猿のパッチがうまくいかないのはなぜですか?
- 12. 猿のpython機能パッチ - 私は別のモジュールからPythonの機能を交換するトラブルによ問題
- 13. ソケット以外のネットワーク技術
- 14. 技術スタックの問題
- 15. Javascriptオブジェクトのプロパティアクセス技術
- 16. サーブレットのフィルタとキャッシング技術
- 17. WCFサービスのホスティング技術
- 18. JESSのパターン結合技術?
- 19. Asp.net MVCオンラインゲームの技術
- 20. PHPの最新技術
- 21. C++のカプセル化技術
- 22. Fortranの技術的クエリ
- 23. iPhone OSでのPUSH技術の実装
- 24. Web技術
- 25. ダミープッシュ技術?
- 26. mint.comプログラミング技術
- 27. スキャンJSON技術
- 28. Pythonの検索技術:単語の類似度
- 29. Androidでどのウェブサービス技術を使用するのですか?
- 30. FirefoxのChromeのネイティブクライアントメッセージングと同様の技術ですか?
Pythonデコレータは、実行時に適用されます。関数/クラスも実行時に "定義"されます。実際には、構文チェックもすべて実行時に行われます。 – freakish
@ブライアンあなたがモンキーパッチが "オブジェクトを変更する"と言うなら、デコレータも関数を変更し、関数はPythonのオブジェクトです。これは正しいと言えるでしょうか? – Kishan
@soupboy:デコレータは関数を変更しないので、関数を引数として受け取り、別の関数を返します。元の機能は変更されていません。プログラマーの観点からは、元の関数が変更された場合と同じかそれ以上の差があるため、「文法レベルで」同じと見なすことができると言われています。 –