Вопросы по теме 'monkeypatching'

Если исправление обезьяны разрешено и в Ruby, и в Python, почему это вызывает больше споров в Ruby?
Во многих дискуссиях, которые я слышал о Ruby, люди выражали свои сомнения по поводу языка, проблема обезьяньих исправлений поднималась как одна из их основных проблем. Однако я редко слышу те же аргументы, сделанные в контексте Python, хотя это...
2555 просмотров

Динамическое добавление свойства или метода к объекту в groovy
Можно ли динамически добавить свойство или метод к объекту в Groovy? Это то, что я пробовал до сих пор: class Greet { def name Greet(who) { name = who[0].toUpperCase() + [1..-1] } def salute() { println "Hello $name!" } } g = new...
24718 просмотров
schedule 10.10.2022

Rails 3: как переопределить метод в геме
Я хочу добавить некоторый пользовательский код в один из методов в драгоценном камне. В Rails 2.3.8 я добавил файл .rb в каталог config/initializers, и все заработало отлично. После перехода на Rail3 то, что работало раньше, больше не работает. Я...
1751 просмотров
schedule 20.11.2022

Безопасное добавление метода sum в класс Array
Я часто суммирую массивы в своем коде, поэтому я думаю о том, чтобы обезьяна исправить класс Array, чтобы включить метод суммы (который суммирует все элементы в массиве): class Array def sum self.inject{ |s, t| s + t } end end Однако...
1676 просмотров
schedule 12.06.2023

pymongo + gevent: бросить мне банан и просто monkey_patch?
Небольшой краткий обзор, который требует большего опыта работы с pymongo, чем у меня есть прямо сейчас: Являются ли «правильные» части драйвера pymongo написанными на python для вызова gevent monkey_patch() и успешного изменения поведения...
4316 просмотров

gevent исправление обезьян и точки останова
Я играю с Gevent, и мне это очень нравится. Однако я столкнулся с проблемой. Точка останова не срабатывает, и отладка не работает (с использованием инструментов Python для Visual Studio и Eclipse PyDev). Это происходит после вызова...
4113 просмотров

Ruby: класс String для исправления Monkey
Меня немного смущает, почему на самом деле работает следующий фрагмент кода: String.instance_eval do # self is set to String [:readlink, :symlink?, :expand_path].each do |method| # self is still String define_method(method) do # self is...
2766 просмотров
schedule 11.05.2023

Одновременное использование Celery в процессах и gevent в задачах
Я хотел бы использовать Celery в качестве очереди для моих задач, чтобы мое веб-приложение могло поставить задачу в очередь, вернуть ответ, и задача будет обработана тем временем / когда-нибудь / ... Я создаю своего рода API, поэтому я не знать,...
21922 просмотров

Частная функция Python Monkey patch
У меня есть модуль с функцией (назовите ее a() ), которая вызывает другую функцию, определенную в том же модуле (назовите ее __b() ). __b() - это функция, которая обращается к веб-сайту через urllib2 и возвращает некоторые данные. Сейчас я...
4682 просмотров
schedule 01.07.2023

Каковы наилучшие методы отслеживания потока большого приложения rails?
Если вы новичок в большом (очень большом!) Rails-приложении, может быть очень сложно проследить поток того, что вызывает что, где определен метод и как «вникнуть», как все это работает. Каковы наилучшие методы поиска такой информации, как: Я...
74 просмотров

динамически устанавливать свойство экземпляра/запоминаемый атрибут в python?
У меня есть существующий пример класса в Python 2.7x class Example(object): a = None b = None c = None и существующий экземпляр anInstance = Example() anInstance.a = 100 anInstance.b = 200 anInstance.c = 300 Я провел...
597 просмотров
schedule 10.05.2023

Обезьяна исправляет поле модели django
Я пытаюсь исправить обезьяну и заменить одно из полей в моей модели. class ProductAttributeValue(AbstractProductAttributeValue): pass """ monkey patching value_image field start """ fieldname_to_replace = 'value_image' replacement_field =...
1201 просмотров
schedule 06.08.2022

Monkeypatching logging.Logger как работают аргументы?
У меня есть класс ведения журнала, который я написал, и мне нравится его использовать. Это выглядит так: class EasyLogger(object): SEP = " " def __init__(self, logger=logging.getLogger(__name__)): self.logger = logger def...
777 просмотров
schedule 25.07.2022

К чему относится ключевое слово this в следующем коде Javascript?
Это пример из JavaScript: Полное руководство Дэвида Фланагана . //Replace the method named m of the object o with a version that logs messages before and after invoking the original method. function trace(o, m) { var original = o[m];...
78 просмотров

Как умножить функции в Python?
def sub3(n): return n - 3 def square(n): return n * n Составлять функции на python очень просто: >>> my_list [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> [square(sub3(n)) for n in my_list] [9, 4, 1, 0, 1, 4, 9, 16, 25, 36]...
2369 просмотров

Проблемы с уточнением Ruby с помощью response_to? и охват
Я пытаюсь добавить метод экземпляра foo в класс Ruby Array , поэтому при его вызове строковые элементы массива заменяются на строку «foo». Это можно легко сделать, исправив классы Ruby String и Array . class String def foo replace...
399 просмотров
schedule 21.03.2023

Могу ли я динамически изменить (патч обезьяны) существующий метод класса python, чтобы добавить декоратор
Допустим, у меня есть существующий класс Python 2.7: class TestClass(object): def foo1(self): return self.foo2() def foo2(self): return self.foo3() def foo3(self): return 'Hello World!' Есть ли способ во...
351 просмотров
schedule 26.08.2022

Куда ставить код при исправлении обезьяны
Все, что я читал о патчах обезьян, говорит о том, что нужно делать что-то вроде этого: class String def foo #your special code end end Но я не могу найти никаких инструкций, где разместить этот код. Могу ли я поместить это в любое...
10919 просмотров
schedule 14.05.2023

Патч PHP Monkey для сторонних классов
У меня есть класс ниже в сторонней библиотеке, которую я не должен изменять. <?php class MyMailer { public function send() { $mail = new PHPMailer(); $mail->setFrom('[email protected]', 'Your Name');...
847 просмотров
schedule 07.04.2022

Как перехватить известное присвоение значения свойства неизвестного объекта, созданного с использованием литеральной записи
Этот вопрос является продолжением другого, который я задал здесь: Как перехватить и изменить конкретное свойство любого объекта Это метод, используемый для перехвата любого свойства объекта с определенным именем с целью изменения значения или...
359 просмотров
schedule 12.07.2023