English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

pythonの動的ロードの実現方法

スクリプト言語には動的ロードという利点があります。lua言語にはこの利点があり、pythonにもこの特性があります。簡単に言えば、開発者が自分のコードにバグがあると感じた場合、元のコードを閉じることなく、モジュールを動的に置き換えることができます。置き換え方法は一般的にreloadで行われます。

1、reloadの基本的な原理

reloadは主に2つのアクションを行います。元のモジュールを削除し、新しいモジュールを追加します

2、reloadの同等のコード

del sys.modules[module_name]
__import__(module_name)

3、reloadを使用する際に注意すべき点

3.1 reloadの引数はmoduleであり、文字列ではありません。つまり

import sys
module = sys.modules[module_name]

3.2 再読み込みされたファイルは対応するモジュールの __init__.py ファイルのみです。他のファイルの場合、効果がありません

3.3 ディレクトリ内の他のファイルの場合、それぞれ再読み込みする必要があります。例えば

import sys
del sys.modules['module_name:sub_file']
__import__('module_name:sub_file')

または

reload(sys.modules['module_name:sub_file'])

まとめ

以上は編集者が皆さんに紹介したpython 动的ロードの実現方法です。皆さんに役立つことを願っています。何かご不明な点があれば、コメントを残してください。編集者はすぐに回答します。この際、ナイアラートゥーチュアルのサポートに感謝します!

声明:この記事の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしました。本サイトは所有権を持ちません。人工的な編集は行われていません。また、関連する法的責任を負いません。著作権に抵触する内容が見つかった場合は、メールで notice#w までお知らせください。3codebox.com(メールを送信する際には、#を@に置き換えてください。届け出を行い、関連する証拠を提供してください。一旦確認がとりあえず、本サイトは侵害される可能性のある内容をすぐに削除します。)

おすすめ