monkeypatching

    39熱度

    4回答

    我有一個類,位於一個單獨的模塊中,我無法更改。 from module import MyClass class ReplaceClass(object) ... MyClass = ReplaceClass 這不會改變MyClass在其他地方,但這個文件。但是,如果我要添加這樣的方法 def bar(): print 123 MyClass.foo = bar

    2熱度

    3回答

    我正在尋找爲什麼在ruby中擴展基類不是個好主意的例子。我需要向一些人展示爲什麼它是一種被謹慎使用的武器。 任何恐怖故事,你可以分享?

    1熱度

    2回答

    我已經使用SWIG將一組類綁定到lua。我知道C++本身不支持猴子修補,我不想修改我的C++對象,僅僅是他們的lua表示。如果我想要啓動猴子修補由SWIG導出的lua表和對象的問題,那麼我可以修改lua端提供的API。 例如以下lua代碼: game.GetEnemies1 = game.GetEnemies2 不能正常工作。該行後面的行爲仍然與原始GetEnemies1而不是GetEnemi

    6熱度

    4回答

    讓我們使用一個真實世界的例子。 我想猴子補丁WillPaginate :: LinkRenderer.to_html方法。 到目前爲止,我曾嘗試: 創建文件夾中的文件:在配置/ environments.rb的lib /猴/ will_paginate_nohtml.rb 補充:需要 '猴子/ will_paginate_nohtml' 在結束文件 在這個文件中,這是我的代碼: Ë module

    3熱度

    4回答

    是否有可能編寫一個C#程序集,在加載時將一個方法從另一個程序集註入到類中?如果是的話,注入的方法是否可以使用DLR的語言,如IronPython? namespace IronPython.Runtime { public class Bytes : IList<byte>, ICodeFormattable, IExpressionSerializable {

    4熱度

    1回答

    py2app documentation提到了腳本,在主python腳本之前運行__boot__.py。我無法找到輕鬆指定setup.py文件或構建過程中的任何腳本的方法。 然而,我確實手動'破解'__boot__.py並在我的主要_run(main_script)之前添加了另一個_run(prescript)命令,它似乎工作正常。然而,使用標準的py2app構建過程會更好。 我基本上試圖做的是在

    0熱度

    3回答

    有沒有辦法獲得在Jekyll上的頁面的url?通過網頁我的意思是不交的紡織文件,如以下層次about.html和download.html: root | +- _includes | +- _layouts | +- _posts | +- _config.yml | +- index.textile | +- about.textile | `- download.

    2熱度

    1回答

    在最近的一些重構過程中,我們改變了我們的用戶頭像存儲的方式,沒有意識到一旦部署就會​​影響所有的現有用戶。所以現在我試圖編寫一個rake任務來解決這個問題。 namespace :fix do desc "Create associated ImageAttachment using data in the Users photo fields" task :user_ava

    1熱度

    3回答

    作爲一個紅寶石新手,我想知道,寶石會不會與彼此衝突?例如,如果2個寶石覆蓋了陣列上的方法,哪個會勝出,或者有什麼可以阻止這個? 謝謝

    2熱度

    2回答

    快速的問題。我剛剛讀到,如果你想添加一個功能,例如列表模塊,你可以定義一個新的列表模塊與功能: module List let foo = // ... ,這都增加foo到主目錄模塊的作用,還是你必須明確地打開新的List?前者好像是Ruby的「猴子補丁」;我想後者會更像擴展方法。 (我嘗試了這一點,但我不是附近的編譯器。)