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