問題タブ [monkeypatching]

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 に答える
1342 参照

python - Python でのクラスへのパッチ適用

追加のプロパティを追加したい Python クラスがあるとします。

間に違いはありますか

そして次のようなものを使用します:

?

そうでない場合、なぜ人々は最初の方法ではなく 2 番目の方法を使用するように見えるのでしょうか? (例: ここhttp://concisionandconcinnity.blogspot.com/2008/10/chaining-monkey-patches-in-python.html )

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

c# - IronPython で .net クラスを再宣言する

IronPython で C# クラスを再宣言できるかどうか教えてもらえますか? C# クラスがある場合、IronPython からモンキー パッチを適用できますか?

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

django - 元の Django アプリを変更せずに Django FlatPages に機能を追加する

Django FlatPage データベース モデルにフィールドを追加したいのですが、元のアプリケーションを編集せずにこれを拡張する方法がよくわかりません。

私がやりたいことは、次のフィールドをモデルに追加することです:

これを FlatPage モデルに追加するにはどうすればよいですか?

前もって感謝します

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

ruby-on-rails - コントローラーで基本クラスのメソッドをオーバーライドする

非常に複雑なブラック ボックスをだまして、いくつかのフロートを別の方法で表示しようとしています (これは Gruff グラフ ライブラリであるため、これは画像にレンダリングされています)。

コンソールでは、これを貼り付けることができます:

そして、私は見るでしょう

しかし、同じコードをコントローラーに貼り付けると、

コントローラ内で Float.to_s を置換できないのはなぜですか? 「これを達成するためのより良い方法は何ですか?」という質問への回答も受け付けます。

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

ruby-on-rails - Railsに宝石の再読み込みを停止させるにはどうすればよいですか?

私は宝石を持っています:

そして私はそれをRailsにロードしました:

そしてそれを使用しました:

しかし、環境固有の方法で少しモンキーパッチを適用する必要があります。

残念ながら、MyGemリクエストごとにリロードするので、私のモンキーパッチは役に立ちません。

私はチェックしましたload_once_paths

どうすれば私が望む効果を得ることができるか考えていますか?

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

ruby-on-rails - RubyGemにパッチを適用する

RailsアプリでRubygemに簡単なパッチを適用する最良の方法は何ですか?

元のgemコードをそのままにしておくことは可能ですか?

0 投票する
25 に答える
316836 参照

python - プロパティをクラスに動的に追加する方法は?

目標は、db 結果セットのように動作するモック クラスを作成することです。

たとえば、dict 式を使用してデータベース クエリが返された場合、次の{'ab':100, 'cd':200}ようになります。

最初は、次のようにできるのではないかと思いました。

代わりc.abにプロパティ オブジェクトを返します。

setattr行を置き換えてk = property(lambda x: vs[i])もまったく役に立ちません。

では、実行時にインスタンス プロパティを作成する正しい方法は何でしょうか?

PS私は方法がどのように__getattribute__使用されるかで提示された代替案を知っていますか?

0 投票する
5 に答える
1927 参照

python - Django とモンキーのパッチの問題

私は最近、空き時間にいくつかの Web アプリケーションで Django の実験を始めました。1 つのデータ モデルを設計しているときに、継承を使用して Web サイトのユーザーを定義するか、フレームワークによって既に提供されている User クラスでモンキー パッチとして知られる手法を使用するかというジレンマに遭遇しました。

(に従って、すべてのモデルなどをエラーなしで定義した後)を使用してフィールドを追加しようとしましたpython manage.py validate

User.add_to_class('location', models.CharField(max_length=250,blank=True))

syncdbそしてコマンドを実行しました。ただし、このエラーが発生し続けます

OperationalError: そのような列はありません: auth_user.location

私がサイトの管理者ビューにいるのか、manage.py シェルにいるのか。私が見逃している余分なステップがあるに違いありませんが、サルのパッチ技術全体に関するドキュメントは限られているようです。ですから、相続に頼る前にあなたに助けを求めています。もちろん、追加のドキュメントへのコード、ヒント、またはポインタは大歓迎です。

前もって感謝します。

PS。私は、この手法が醜く、おそらく賢明でないことを認識しています。;)

0 投票する
5 に答える
254 参照

python - Pythonでモジュールを流用することは可能ですか? (ResourceX は ResourceXSimulated に流用)

その時点で利用できず動作しないリソースを必要とするモジュール (ResourceX) をインポートする MyApp をシミュレートしたいと考えています。

これに対する解決策は、ResourceX のモック モジュール (ResourceXSimulated という名前) を作成してインポートし、それを ResourceX として MyApp に流用することです。多くのコードを壊さないようにし、MyApp からあらゆる種類の例外を取得するために、これを行いたいと考えています。

私はPythonを使用していますが、次のようになります。

「ResourceXSimulated を ResourceX としてインポート」

「ResourceX.getData()」、実際には ResourceXSimultated.getData() を呼び出します

Python がこの種のリダイレクトをサポートしているかどうかを調べるのを楽しみにしています。

乾杯。

追加情報: ソース ファイルにアクセスできます。

更新: 偽のモジュールの使用に関して MyApp にできるだけ少ないコードを追加し、インポート ステートメントの近くにこのコードを追加することを考えています。

0 投票する
6 に答える
832 参照

ruby - uniq メソッドの拡張

これは Ruby 1.8 の質問です。

私たちは皆、使い方を知っていますArray#uniq

ただし、複雑なオブジェクトを操作する方法でモンキー パッチを適用できるかどうかは疑問です。現在の動作は次のようになります。

要求されたものは次のとおりです。