Pythonのfrom module import *の落とし穴
しかし、別の問題があります。あなたは、特定の変数を変更したと思っていますが、実際には、from モジュール import * の後の変数は更新されていません。これは、プログラムがまだ正常に実行される可能性があるため、非常に危険ですが、結果は次のようになります。はい、本番まで発見されなかったら大惨事になります。
例:
基本モジュールでいくつかの変数を定義しました:
1 2 3 4 5 6 7 8 |
|
次に、from module import を使用してモジュールで読み取ります。
1 2 3 4 5 6 7 |
|
別のモジュールに書きます:
1 2 3 4 5 6 7 8 9 10 |
|
次に、最初に書き込み、次に読み取りを行って、書き込まれた内容が有効かどうかを確認します。
1 2 3 4 5 6 7 8 9 10 |
|
結論はノーです、理由は次のとおりです:
from module import を使用する場合、実際にはメモリを指す参照またはポインタをコピーし、var と module.var の両方が同じメモリを指します
module.var を変更すると、実際には別のメモリを指すようになります。このとき、var と module.var は異なるメモリを指します
。
したがって、module.var の値は変更されましたが、var は依然として元のメモリと元の値
を指します。
これはオブジェクトの場合は理解しやすいですが、オブジェクト内の値を直接変更することはできますが、別のオブジェクトを指す場合は無効です。 プリミティブ型の場合、既存のメモリをインプレース変更するのではなく、各割り当てが異なるメモリ アドレスを指すため、これは実際には同じです。これは簡単に検証できます:
1 2 3 4 5 6 7 8 9 |
|
したがって、手早く汚いスクリプトでない限り、from module import * を使用しないことをお勧めします。
例: https://github.com/baiyanhuang/blog/tree/master/arena/python/from_module_import

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

Scapy Crawlerを使用する場合、パイプラインの永続的なストレージファイルを書くことができない理由は?ディスカッションデータクローラーにScapy Crawlerを使用することを学ぶとき、あなたはしばしば...

Python:Hourglassグラフィック図面と入力検証この記事では、Python NoviceがHourglass Graphic Drawingプログラムで遭遇する可変定義の問題を解決します。コード...

Python Process Poolは、クライアントが立ち往生する原因となる同時TCP要求を処理します。ネットワークプログラミングにPythonを使用する場合、同時のTCP要求を効率的に処理することが重要です。 ...

python functools.partialオブジェクトのpython functools.partialを使用してPythonを使用する視聴方法を深く探索します。

Pythonクロスプラットフォームデスクトップアプリケーション開発ライブラリの選択多くのPython開発者は、WindowsシステムとLinuxシステムの両方で実行できるデスクトップアプリケーションを開発したいと考えています...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...
