Python のグローバル変数: int string、list、dic(map) global が存在する場合、その値を変更できます。 if にグローバルが存在するかどうか、または if が実行できるかどうかは関係ありません。
ただし、
if bGlobal: global g_strVal;
int 文字列がない場合は、エラーが報告されます。 list dic(map) もOKです。
#!/usr/bin/dev python import sys import os g_nVal = 0; g_strVal = "aaaa"; g_map = { "aaa" : "111", "bbb" : "222", "ccc" : "333", "ddd" : "444" } g_ls = ['a', 'b', 'c'] def FixInt(bGlobal = False): if bGlobal: global g_nVal; g_nVal = g_nVal + 1; def FixString(bGlobal = False): if bGlobal: global g_strVal; #fix string value g_strVal = g_strVal + 'b'; def FixMap(bGlobal = False): if bGlobal: global g_map; #fix map value g_map['aaa'] = 'aaa__' + g_strVal; g_map['bbb'] = 'bbb__' + g_strVal; g_map['ccc'] = 'ccc__' + g_strVal; g_map['ddd'] = 'ddd__' + g_strVal; def FixList(bGlobal = False): if bGlobal: global g_ls; g_ls.append('1'); def PrintVal(strInfo): if strInfo: print("==== %s =====" %strInfo); print("int value:%d" %g_nVal); print("string value:%s" %g_strVal); print("map value:%s" %g_map); print("list value:%s" %g_ls); print("\n\n"); if "__main__" == __name__: PrintVal("The orgin vlaue"); FixInt(); FixString(); FixMap(); FixList(); PrintVal("print all bGlobal = False vlaue"); FixInt(True); FixString(True); FixMap(True); FixList(True); PrintVal("print all bGlobal = True vlaue");
Result:
==== The orgin vlaue ===== int value:0 string value:aaaa map value:{'aaa': '111', 'bbb': '222', 'ccc': '333', 'ddd': '444'} list value:['a', 'b', 'c'] g_nVal src:0 g_nVal dst:1 ==== print all bGlobal = False value ===== int value:1 string value:aaaab map value:{'aaa': 'aaa__aaaab', 'bbb': 'bbb__aaaab', 'ccc': 'ccc__aaaab', 'ddd': 'ddd__aaaab'} list value:['a', 'b', 'c', '1'] g_nVal src:1 g_nVal dst:2 ==== print all bGlobal = True value ===== int value:2 string value:aaaabb map value:{'aaa': 'aaa__aaaabb', 'bbb': 'bbb__aaaabb', 'ccc': 'ccc__aaaabb', 'ddd': 'ddd__aaaabb'} list value:['a', 'b', 'c', '1', '1']
グローバル辞書変数を変更するには、globalキーワードを使用してみてはいかがでしょうか
たとえば、次のコードです
s = 'foo' d = {'a':1} def f(): s = 'bar' d['b'] = 2 f() print s print d
変更する辞書の値 d グローバルを使用する必要はありません キーワードを最初に宣言する必要がありますか?
これは、
文 s = 'bar' では、グローバル変数 s を参照するか、新しいローカル変数を作成することができるため、「曖昧」です。そのため、Python では、デフォルトで、その動作はローカル変数を作成することです。グローバルが明示的に宣言されていない限り、d['b']=2 という文では、d がローカル変数とみなされると KeyError が報告されるため、グローバル d のみを参照できるため、これは「明示的」です。したがって、明示的にグローバルを宣言する必要はありません。
上記の 2 つの代入ステートメントは実際には異なる動作であり、1 つは再バインディング、もう 1 つは突然変異です。
d = {'a':1} def f(): d = {} d['b'] = 2 f() print d文 d = {} では、それは「曖昧」です。したがって、グローバル変数 d を参照する代わりにローカル変数 d を作成するため、 d['b']=2 も操作のローカル変数になります。 ひいては、これらすべての現象の本質は「それが明らかかどうか」です。
注意深く考えてみると、dict にグローバルが必要ないだけでなく、すべての「明示的な」ものにもグローバルが必要ないことがわかります。 int 型と str 型は変更方法が x = y の 1 つしかないため、この変更方法も変数の作成方法なので曖昧さが生じ、変更するのか作成するのかわかりません。 dict/list/objects などについては、dict['x']=y または list.append() を使用して変更できます。変数の作成と競合せず、曖昧さも生じないため、変更する必要はありません。明示的にグローバルです。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...

正規表現を使用して、最初の閉じたタグと停止に一致する方法は? HTMLまたは他のマークアップ言語を扱う場合、しばしば正規表現が必要です...


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
