monkeypatching

    1熱度

    1回答

    我收到以下錯誤在我的Rails應用程序之一[紅寶石1.8.7 + Rails的2.3.9] A ArgumentError occurred in home#dashboard: illegal character in key "dashboard_prod:views/reports/1050 - 097" /opt/ruby-enterprise/lib/ruby/gems/1.8/ge

    9熱度

    3回答

    直到像一個小時前,我確信python Foo().bar()只不過是Foo.bar (Foo())的簡寫,它將實例作爲第一個參數傳遞。在這個例子中,最後兩行(顯然)相同的事情: class Foo (object): def bar (self): print "baz" qux = Foo() qux.bar() Foo.bar (qux) 但現在我有了一個靜態方法popu

    14熱度

    4回答

    我在這裏和那裏發現了一些關於如何修改JavaScript對象原型的建議嗎?我個人並不認爲這可能是一個問題。例如將Array對象擴展爲具有map和include方法或創建更強大的Date方法?

    12熱度

    2回答

    class Foo(object): pass foo = Foo() def bar(self): print 'bar' Foo.bar = bar foo.bar() #bar 來自JavaScript,如果「類」原型增加了一定的屬性。衆所周知,該「類」的所有實例都將在其原型鏈中具有該屬性,因此不必對其任何實例或「子類」進行修改。 從這個意義上說,像Pyt

    3熱度

    2回答

    我想猴子從Django補丁用戶模型。 我的代碼: from django.db import models from django.contrib.auth.models import User User.add_to_class('secret_question', models.CharField(max_length="100")) User.add_to_class('answer

    0熱度

    1回答

    在我的應用程序中,我希望在輸入和查看時都支持空白日期字段,意思是「未來某些不確定日期」。由於我將它存儲在數據庫中,並且在任何非零日期之前都沒有排序,所以我決定對Date類進行猴式修補以實現一個「max_value」方法,該方法返回「1/1/10000」(我選擇的日期代表將來的無限期)。我已經重載了+, - ,to_s和其他的操作符/方法,以適合這個值。然後,我將一個before_save回調函數添

    4熱度

    1回答

    我發現很有趣的,你可以在sicp做功能動態調度的方式之一讀取 - 使用類型標籤+名的表 - >功能,您可以從取或添加到。 我在想,這是一個典型的動態非OO語言的類型調度機制嗎? 還有什麼會是猴子路徑這種典型的方式,使用表的鏈接列表(如果你沒有在第一個表找到它嘗試下表遞歸)?將本地範圍內的表重新綁定到修改後的副本? ECT?

    0熱度

    1回答

    你如何爲rake任務中使用的類的方法修補一個方法?特別是我想重新定義資產:包裝器插件的方法Synthesis::AssetPackage#compress_js。我試圖在RAILS_ROOT的Rakefile中重新定義,但那不起作用。我寧願不直接更改插件。

    3熱度

    5回答

    部分類背後的想法是,您可以將某些功能組合在一起。 C#中最好的例子是把控制定義放在一個文件中,而事件處理器放在另一個文件中。在Ruby中,您可以使用Monkey修補來替換整個函數等,以便讓代碼執行您想要的操作。 我還沒有找到一個理由做到這一點,但我認爲網絡提高了,更多的應用程序將在客戶端,所以我想知道如果我在服務器中找到的一些偉大的功能邊語言,我也可以在Javascript中使用。 有誰知道嗎?

    9熱度

    4回答

    爲了特定的調試目的,我想包裝一個任意對象的函數來執行額外的任務,如將對象的最後一個值寫入文件。 理想我想寫 猴(x)的 ,它應該意味着,當X被刪除 x的最終值印刷現在我想通德爾是一個類的方法。所以下面是一個開始: class Test: def __str__(self): return "Test" def p(self): print(str(self))