Python 3 の「非ローカル」の力
Python プログラミングでは、変数はスコープに従って分類できます。
- グローバル: を含むプログラム全体を通じてアクセス可能ネストされた関数。
- ローカル: 特定の関数またはブロック内でのみ定義され、アクセスできます。
ただし、場合によっては、これらのスコープ間のギャップを埋める必要がある場合があります。ここで、「nonlocal」キーワードが登場します。
「nonlocal」を理解する
「nonlocal」は、Python 3 で存在する変数を宣言するために使用されます。スコープはより広いですが、グローバルとして宣言されていません。これにより、同じ名前のグローバル変数に影響を与えることなく、囲まれた関数から変数にアクセスして変更することができます。
「非ローカル」の影響
違いを説明するには、次のことを考えてください。なしの次の例"nonlocal":
x = 0 def outer(): x = 1 def inner(): x = 2 print("inner:", x) inner() print("outer:", x) outer() print("global:", x)
出力:
inner: 2 outer: 1 global: 0
この場合、inner() 関数内の変数 x は、関数内の x から独立した新しいローカル変数とみなされます。 inner() 関数とグローバル x.
次に、次を使用してコードを変更しましょう。 "nonlocal":
x = 0 def outer(): x = 1 def inner(): nonlocal x x = 2 print("inner:", x) inner() print("outer:", x) outer() print("global:", x)
出力:
inner: 2 outer: 2 global: 0
このシナリオでは、"nonlocal" キーワードにより、inner() 関数内の x 変数が x 変数を参照および変更できるようになります。アウター()関数内。 inner() 関数内で行われた変更は、outer() 関数内に保持されます。
「global」との違い
「nonlocal」は「global」キーワードとは異なりますこれは、囲まれたスコープから変数にアクセスして変更できるのに対し、「グローバル」は真にグローバルなスコープから変数にアクセスして変更するという点です。
上記の例で「global」を使用すると、次の出力が得られます。
inner: 2 outer: 1 global: 2
この場合、inner() 関数内の x 変数は、 global x とその変更は、outer() 内の値ではなく、グローバル変数の値に影響します。 function.
結論
「非ローカル」は、Python 3 の囲まれたスコープから変数にアクセスして変更するための強力なメカニズムを提供します。これにより、グローバル変更の落とし穴を回避できます。ネストされた関数内で変数を管理し、より組織化されたモジュール形式のコード構造を維持します。
以上がPython の「nonlocal」キーワードは、入れ子関数のスコープにおける「global」とどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Tomergelistsinpython、あなたはオペレーター、extendmethod、listcomfulting、olitertools.chain、それぞれの特異的advantages:1)operatorissimplebutlessforlargelist;

Python 3では、2つのリストをさまざまな方法で接続できます。1)小さなリストに適したオペレーターを使用しますが、大きなリストには非効率的です。 2)メモリ効率が高い大規模なリストに適した拡張方法を使用しますが、元のリストは変更されます。 3)元のリストを変更せずに、複数のリストをマージするのに適した *オペレーターを使用します。 4)Itertools.chainを使用します。これは、メモリ効率が高い大きなデータセットに適しています。

Join()メソッドを使用することは、Pythonのリストから文字列を接続する最も効率的な方法です。 1)join()メソッドを使用して、効率的で読みやすくなります。 2)サイクルは、大きなリストに演算子を非効率的に使用します。 3)リスト理解とJoin()の組み合わせは、変換が必要なシナリオに適しています。 4)redoce()メソッドは、他のタイプの削減に適していますが、文字列の連結には非効率的です。完全な文は終了します。

pythonexexecutionistheprocessoftransforningpythoncodeintoexecutabletructions.1)interpreterreadSthecode、変換intobytecode、thepythonvirtualmachine(pvm)executes.2)theglobalinterpreeterlock(gil)管理委員会、

Pythonの主な機能には次のものがあります。1。構文は簡潔で理解しやすく、初心者に適しています。 2。動的タイプシステム、開発速度の向上。 3。複数のタスクをサポートするリッチ標準ライブラリ。 4.強力なコミュニティとエコシステム、広範なサポートを提供する。 5。スクリプトと迅速なプロトタイピングに適した解釈。 6.さまざまなプログラミングスタイルに適したマルチパラダイムサポート。

Pythonは解釈された言語ですが、コンパイルプロセスも含まれています。 1)Pythonコードは最初にBytecodeにコンパイルされます。 2)ByteCodeは、Python Virtual Machineによって解釈および実行されます。 3)このハイブリッドメカニズムにより、Pythonは柔軟で効率的になりますが、完全にコンパイルされた言語ほど高速ではありません。

useaforloopwhenteratingoverasequenceor foraspificnumberoftimes; useawhileloopwhentinuninguntinuntilaConditionismet.forloopsareidealforknownownownownownownoptinuptinuptinuptinuptinutionsituations whileoopsuitsituations withinterminedationations。

pythonloopscanleadtoErrorslikeinfiniteloops、ModifiningListsDuringiteration、Off-Oneerrors、Zero-dexingissues、およびNestededLoopinefficiencies.toavoidhese:1)use'i


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

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

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