Pythonスレッドは関数内のグローバル変数を変更しません

HessamSH

私がコーディングしたいものの最も基本的な形式は、次のようなコードです。

import threading

arr = []
def test(id):
    global arr
    arr.append(id)

threading.Thread(target=test, args="8")
print(arr)

私がやりたいのは、arrというグローバル変数に「8」を追加することです。しかし、これは発生せず、print(arr)は次の出力を提供します。

[]

ただし、このコードを使用すると、すべて正常に機能します。

import threading

arr = []
def test(id):
    global arr
    arr.append(id)

test("8")
print(arr)

問題はスレッドにあるようですが、どうすればスレッドを使用して、関数テスト内でグローバル変数の値を変更できますか?

Mohit solanki

また、実際に関数を実行するには、スレッドを開始する必要があります test

import threading

arr = []
def test(id):
    global arr
    arr.append(id)

t = threading.Thread(target=test, args="8")
t.start()
t.join()
print(arr)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonのexec()コマンドは、関数内からグローバル変数を変更できません

分類Dev

C ++スレッドはグローバル変数の変更を検出しません

分類Dev

プロセススレッドはグローバル変数の変更を感知できません

分類Dev

関数内のグローバル変数を変更できません(Javascript)

分類Dev

関数内のグローバル変数を変更できません

分類Dev

関数内のグローバル変数を変更することはできません

分類Dev

ローカル関数変数の変更は、グローバルスコープの変数に影響しません。何故なの?

分類Dev

スクリプト内の関数からグローバル変数を変更しようとしても、何も起こりませんか?

分類Dev

PHPはグローバル変数をクラス内の関数にインポートできません

分類Dev

Pythonは関数内のグローバル変数を改訂します

分類Dev

メソッド内のローカル変数を変更します。メソッドが実行されても、変数は変更されません。

分類Dev

関数内でグローバル値は変更されません

分類Dev

Pythonの関数内のグローバル変数の変更

分類Dev

Pythonは、関数内の関数に対してのみグローバル変数を共有します

分類Dev

グローバル変数はグローバルではありません - 関数内のみ

分類Dev

関数の外部で使用される関数内の変数を宣言します(ただし、グローバルには宣言しません)

分類Dev

bashの関数内でグローバル変数を変更する方法は?

分類Dev

クリックハンドラーを使用して関数内のグローバルスコープ変数を変更する

分類Dev

関数内の変更を取得しないグローバル変数

分類Dev

関数内のグローバル変数は外部からアクセスできません

分類Dev

メソッド内の関数内のグローバル変数を更新します

分類Dev

Pythonはグローバル変数を変更します

分類Dev

AddressSanitizerはグローバル変数からのメモリリークをトレースしませんか?

分類Dev

グローバルを使用しない、またはCの関数入力を変更しない、関数内の配列への変数の割り当て

分類Dev

PHPは他の関数内の関数内のグローバル変数にアクセスします

分類Dev

Python:グローバル変数は関数によって影響を受けたり変更されたりしません

分類Dev

文字列とリストの変数スコープは異なりますか?リストはグローバル変数を指定せずに関数で変更できますが、文字列は変更できません

分類Dev

文字列とリストの変数スコープは異なりますか?リストはグローバル変数を指定せずに関数で変更できますが、文字列は変更できません

分類Dev

Pythonでグローバル変数の値を変更することはできません

Related 関連記事

  1. 1

    Pythonのexec()コマンドは、関数内からグローバル変数を変更できません

  2. 2

    C ++スレッドはグローバル変数の変更を検出しません

  3. 3

    プロセススレッドはグローバル変数の変更を感知できません

  4. 4

    関数内のグローバル変数を変更できません(Javascript)

  5. 5

    関数内のグローバル変数を変更できません

  6. 6

    関数内のグローバル変数を変更することはできません

  7. 7

    ローカル関数変数の変更は、グローバルスコープの変数に影響しません。何故なの?

  8. 8

    スクリプト内の関数からグローバル変数を変更しようとしても、何も起こりませんか?

  9. 9

    PHPはグローバル変数をクラス内の関数にインポートできません

  10. 10

    Pythonは関数内のグローバル変数を改訂します

  11. 11

    メソッド内のローカル変数を変更します。メソッドが実行されても、変数は変更されません。

  12. 12

    関数内でグローバル値は変更されません

  13. 13

    Pythonの関数内のグローバル変数の変更

  14. 14

    Pythonは、関数内の関数に対してのみグローバル変数を共有します

  15. 15

    グローバル変数はグローバルではありません - 関数内のみ

  16. 16

    関数の外部で使用される関数内の変数を宣言します(ただし、グローバルには宣言しません)

  17. 17

    bashの関数内でグローバル変数を変更する方法は?

  18. 18

    クリックハンドラーを使用して関数内のグローバルスコープ変数を変更する

  19. 19

    関数内の変更を取得しないグローバル変数

  20. 20

    関数内のグローバル変数は外部からアクセスできません

  21. 21

    メソッド内の関数内のグローバル変数を更新します

  22. 22

    Pythonはグローバル変数を変更します

  23. 23

    AddressSanitizerはグローバル変数からのメモリリークをトレースしませんか?

  24. 24

    グローバルを使用しない、またはCの関数入力を変更しない、関数内の配列への変数の割り当て

  25. 25

    PHPは他の関数内の関数内のグローバル変数にアクセスします

  26. 26

    Python:グローバル変数は関数によって影響を受けたり変更されたりしません

  27. 27

    文字列とリストの変数スコープは異なりますか?リストはグローバル変数を指定せずに関数で変更できますが、文字列は変更できません

  28. 28

    文字列とリストの変数スコープは異なりますか?リストはグローバル変数を指定せずに関数で変更できますが、文字列は変更できません

  29. 29

    Pythonでグローバル変数の値を変更することはできません

ホットタグ

アーカイブ