検索
ホームページバックエンド開発Python チュートリアルPythonのモンキーパッチとは何ですか?使い方?

この記事の内容は、Pythonのモンキーパッチとは何ですか?使い方?一定の参考値があるので、困っている友達は参考にしていただければ幸いです。

モンキー パッチとは

モンキー パッチという用語は、既存の 3 番目のパッチにパッチを適用する目的で実行時にクラスまたはモジュールを動的に変更することのみを指します。 - 期待通りに動作しないバグや機能の回避策としてのパーティ コード

つまり、実行時にメソッド/クラス/属性/関数を変更し、元のコードを新しいコードに置き換えます。解決策 一部のプログラムにはパッチが適用されています。

なぜモンキー パッチと呼ばれるのか

モンキー パッチという用語は、コードをこっそり変更することを指し、おそらく他の同様のコードと互換性がないことを指す、初期の用語であるゲリラ パッチに由来しているようです。パッチ – 実行時。ゴリラと同音異義語のゲリラという言葉 (またはそれに近い) が、おそらくパッチの威圧感を和らげるために猿になりました。[1] 別の語源としては、コードを「いじる」こと (いじること) を指します。 ).

一説によると、雑軍やゲリラの英語の発音はオランウータンの発音に似ているという説もあり、雑軍やゲリラは本来の軍隊ではなく、いわば補欠のようなもので、そのため、モンキー パッチとも呼ばれます。別の言い方として、「猿回し」という言葉は、ふざける、いたずらする、なだめることを意味するため、モンキー パッチと呼ばれます

Python でのモンキー パッチの使用

class Example():
    def func1(self):
        print('我才是原装')def func2(*args):
    print('我要取代你')def func3(*args):
    print('都给我一边去')
instance = Example()
Example.func1 = func2
instance.func1() # 我要取代你instance.func1 = func3
instance.func1() # 都给我一边去instance2 = Example()
instance2.func1() # 我要取代你

例は非常に単純です。 func2 はクラス メソッドを置き換え、func3 はクラス メソッドを置き換えます。 メソッドは例であり、最終出力はオリジナルではありません。

その他の例

を使用すると、モンキー パッチが発生します。 gevent module

import gevent.monkey
 gevent.monkey.patch_all()

モンキーパッチの使い方ですが、geventはソケット、ssl、スレッド、選択モジュールなど、標準ライブラリのブロッキングシステムコールのほとんどを修正し、協調動作に変更することができます。つまり、Monkeypatch Monkey.patch_xxx() は、Python 標準ライブラリのモジュールまたは関数を、gevent のコルーチンを備えた応答性の高い協調オブジェクトに変更するために使用されます。このようにして、元のコードを変更せずに、アプリケーションのブロック メソッドをコルーチンに変えることができます。
こちらを参照 https://blog.csdn.net/wangjianno2/article/details/51708658

注意事項

モンキー パッチを使用する場合も同様に簡単です問題が発生する バージョンアップするとパッチが破損しやすい 知らずに1箇所に2つのパッチを適用すると入れ替わってしまう パッチがあることを知らない人にとっては混乱するかもしれない. 発生する特定の状況に混乱する

以上がPythonのモンキーパッチとは何ですか?使い方?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は博客园で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
详细讲解Python之Seaborn(数据可视化)详细讲解Python之Seaborn(数据可视化)Apr 21, 2022 pm 06:08 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

详细了解Python进程池与进程锁详细了解Python进程池与进程锁May 10, 2022 pm 06:11 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

Python自动化实践之筛选简历Python自动化实践之筛选简历Jun 07, 2022 pm 06:59 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

归纳总结Python标准库归纳总结Python标准库May 03, 2022 am 09:00 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于标准库总结的相关问题,下面一起来看一下,希望对大家有帮助。

分享10款高效的VSCode插件,总有一款能够惊艳到你!!分享10款高效的VSCode插件,总有一款能够惊艳到你!!Mar 09, 2021 am 10:15 AM

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

python中文是什么意思python中文是什么意思Jun 24, 2019 pm 02:22 PM

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

Python数据类型详解之字符串、数字Python数据类型详解之字符串、数字Apr 27, 2022 pm 07:27 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

详细介绍python的numpy模块详细介绍python的numpy模块May 19, 2022 am 11:43 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境