問題タブ [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.
python - Python でのクラスへのパッチ適用
追加のプロパティを追加したい Python クラスがあるとします。
間に違いはありますか
そして次のようなものを使用します:
?
そうでない場合、なぜ人々は最初の方法ではなく 2 番目の方法を使用するように見えるのでしょうか? (例: ここhttp://concisionandconcinnity.blogspot.com/2008/10/chaining-monkey-patches-in-python.html )
c# - IronPython で .net クラスを再宣言する
IronPython で C# クラスを再宣言できるかどうか教えてもらえますか? C# クラスがある場合、IronPython からモンキー パッチを適用できますか?
django - 元の Django アプリを変更せずに Django FlatPages に機能を追加する
Django FlatPage データベース モデルにフィールドを追加したいのですが、元のアプリケーションを編集せずにこれを拡張する方法がよくわかりません。
私がやりたいことは、次のフィールドをモデルに追加することです:
これを FlatPage モデルに追加するにはどうすればよいですか?
前もって感謝します
ruby-on-rails - コントローラーで基本クラスのメソッドをオーバーライドする
非常に複雑なブラック ボックスをだまして、いくつかのフロートを別の方法で表示しようとしています (これは Gruff グラフ ライブラリであるため、これは画像にレンダリングされています)。
コンソールでは、これを貼り付けることができます:
そして、私は見るでしょう
しかし、同じコードをコントローラーに貼り付けると、
コントローラ内で Float.to_s を置換できないのはなぜですか? 「これを達成するためのより良い方法は何ですか?」という質問への回答も受け付けます。
ruby-on-rails - Railsに宝石の再読み込みを停止させるにはどうすればよいですか?
私は宝石を持っています:
そして私はそれをRailsにロードしました:
そしてそれを使用しました:
しかし、環境固有の方法で少しモンキーパッチを適用する必要があります。
残念ながら、MyGem
リクエストごとにリロードするので、私のモンキーパッチは役に立ちません。
私はチェックしましたload_once_paths
:
どうすれば私が望む効果を得ることができるか考えていますか?
ruby-on-rails - RubyGemにパッチを適用する
RailsアプリでRubygemに簡単なパッチを適用する最良の方法は何ですか?
元のgemコードをそのままにしておくことは可能ですか?
python - プロパティをクラスに動的に追加する方法は?
目標は、db 結果セットのように動作するモック クラスを作成することです。
たとえば、dict 式を使用してデータベース クエリが返された場合、次の{'ab':100, 'cd':200}
ようになります。
最初は、次のようにできるのではないかと思いました。
代わりc.ab
にプロパティ オブジェクトを返します。
setattr
行を置き換えてk = property(lambda x: vs[i])
もまったく役に立ちません。
では、実行時にインスタンス プロパティを作成する正しい方法は何でしょうか?
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。私は、この手法が醜く、おそらく賢明でないことを認識しています。;)
python - Pythonでモジュールを流用することは可能ですか? (ResourceX は ResourceXSimulated に流用)
その時点で利用できず動作しないリソースを必要とするモジュール (ResourceX) をインポートする MyApp をシミュレートしたいと考えています。
これに対する解決策は、ResourceX のモック モジュール (ResourceXSimulated という名前) を作成してインポートし、それを ResourceX として MyApp に流用することです。多くのコードを壊さないようにし、MyApp からあらゆる種類の例外を取得するために、これを行いたいと考えています。
私はPythonを使用していますが、次のようになります。
「ResourceXSimulated を ResourceX としてインポート」
「ResourceX.getData()」、実際には ResourceXSimultated.getData() を呼び出します
Python がこの種のリダイレクトをサポートしているかどうかを調べるのを楽しみにしています。
乾杯。
追加情報: ソース ファイルにアクセスできます。
更新: 偽のモジュールの使用に関して MyApp にできるだけ少ないコードを追加し、インポート ステートメントの近くにこのコードを追加することを考えています。
ruby - uniq メソッドの拡張
これは Ruby 1.8 の質問です。
私たちは皆、使い方を知っていますArray#uniq
:
ただし、複雑なオブジェクトを操作する方法でモンキー パッチを適用できるかどうかは疑問です。現在の動作は次のようになります。
要求されたものは次のとおりです。