Вопросы по теме 'monkeypatching'
Если исправление обезьяны разрешено и в Ruby, и в Python, почему это вызывает больше споров в Ruby?
Во многих дискуссиях, которые я слышал о Ruby, люди выражали свои сомнения по поводу языка, проблема обезьяньих исправлений поднималась как одна из их основных проблем.
Однако я редко слышу те же аргументы, сделанные в контексте Python, хотя это...
2555 просмотров
schedule
20.12.2022
Динамическое добавление свойства или метода к объекту в 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 просмотров
schedule
10.11.2023
gevent исправление обезьян и точки останова
Я играю с Gevent, и мне это очень нравится. Однако я столкнулся с проблемой. Точка останова не срабатывает, и отладка не работает (с использованием инструментов Python для Visual Studio и Eclipse PyDev). Это происходит после вызова...
4113 просмотров
schedule
06.03.2022
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 просмотров
schedule
31.03.2022
Частная функция Python Monkey patch
У меня есть модуль с функцией (назовите ее a() ), которая вызывает другую функцию, определенную в том же модуле (назовите ее __b() ). __b() - это функция, которая обращается к веб-сайту через urllib2 и возвращает некоторые данные. Сейчас я...
4682 просмотров
schedule
01.07.2023
Каковы наилучшие методы отслеживания потока большого приложения rails?
Если вы новичок в большом (очень большом!) Rails-приложении, может быть очень сложно проследить поток того, что вызывает что, где определен метод и как «вникнуть», как все это работает.
Каковы наилучшие методы поиска такой информации, как:
Я...
74 просмотров
schedule
19.04.2023
динамически устанавливать свойство экземпляра/запоминаемый атрибут в 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 просмотров
schedule
21.04.2024
Как умножить функции в 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 просмотров
schedule
21.08.2022
Проблемы с уточнением 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