web-dev-qa-db-ja.com

Pythonエラー:グローバル宣言された変数がグローバルスコープで宣言されていません)

私はPythonにとってかなり新しいもので、簡単なGUIプログラムを作ろうとしました。しかし、私はまさに「問題」に入りました、まさに警告は、「M」はグローバルスコープで定義されていません(Python(variable-not-dextrand-globally))。

その機能スコープ以外にアクセスする場合は、関数内でVARグローバルを宣言する必要があることがわかります。この新しい作成された変数を関数の外に使用しないが、グローバルを宣言していない場合、私のプログラムは1秒の数分のGUIのみを表示し、それを閉じます。

import sys
from PyQt5.QtWidgets import QApplication, QWidget

def show():
    global m
    m = QWidget()
    m.setWindowTitle("Testing this app")
    m.show()

MYAPP = QApplication(sys.argv)
show()
MYAPP.exec_()
 _

なぜこれが起こっているのかを説明できますか?前もって感謝します!

5
Andrew T

show()で使用される前に、グローバルスコープのmも宣言する必要があります。 show()を呼び出す直前にm=Noneを設定することでこれを行うことができます。