Что такое исправление обезьян?

Чтобы избежать двойной компиляции, вы можете использовать оболочку regex bson, которая поставляется вместе с PyMongo:

>>> regx = bson.regex.Regex('^foo')
>>> db.users.find_one({"files": regx})

Regex просто сохраняет строку, не пытаясь ее скомпилировать, поэтому find_one может затем определить аргумент как 'Regex' и сформировать соответствующий запрос Mongo.

Я чувствую, что этот способ немного более Pythonic, чем другой верный ответ, например:

>>> db.collectionname.find({'files':{'$regex':'^File'}})

. Стоит прочитать на bson Regex, если вы планируете использовать регулярные запросы, потому что есть некоторые оговорки.

468
задан Lutz Prechelt 21 September 2017 в 10:56
поделиться

1 ответ

, Что исправляет обезьяна? исправление Обезьяны является техникой, используемой для динамичного обновления поведения части кода во времени выполнения.

, Почему исправление обезьяны использования? Это позволяет нам изменять или расширять поведение библиотек, модули, классы или методы во времени выполнения, на самом деле не изменяя исправление Обезьяны Заключения исходного кода

являются прохладной техникой, и теперь мы изучили, как сделать это в Python. Однако как мы обсудили, это имеет свои собственные недостатки и должно использоваться тщательно.

Для большего количества информации относитесь [1]: https://medium.com / nagillavenkatesh1234/monkey-patching-in-python-explained-with-examples-25eed0aea505

0
ответ дан 22 November 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: