ホーム>source

Python 3では、「未定義」で始まるグローバル変数があります。

次に、それを何かに設定しました。

その変数を「未定義」の状態に戻す方法はありますか?

あずきっく

編集-グローバル変数が未定義の状態でどのように始まるかを示します。

<前>ウィズウィズ Python 2.7.5+ (default, Feb 27 2014, 19:37:08) [GCC 4.8.1] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> x Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'x' is not defined >>> global x >>> x Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'x' is not defined >>>
あなたの答え
  • 解決した方法 # 1

    グローバル名 x を削除できます  を使用して

    <前>ウィズウィズ

    Pythonには、CやJavaが持っている「変数」はありません。 Pythonでは、変数は、固定されたメモリ位置を参照する名前とは対照的に、任意のオブジェクトに適用できる単なるタグです。

    削除しても、名前が指すオブジェクトが必ずしも削除されるわけではありません。

  • 解決した方法 # 2

    おそらくNoneに設定したいでしょう。

    <前>ウィズウィズ

    変数が「定義済み」かどうかを確認します

    <前>ウィズウィズ

    変数を削除することもできますが、実際にはpythonicではありません。

    <前>ウィズウィズ

    NameErrorをキャッチする必要はあまり一般的ではないため、通常、変数をNoneに設定することをお勧めします。

  • 解決した方法 # 3

    「未定義の状態」をテストできるようにするには、それをNoneに設定する必要があります。

    <前>ウィズウィズ

    とテストする

    <前>ウィズウィズ

    ものをきれいにしたいなら、あなたはそれを削除することができます、 del x  しかし、それはガベージコレクターのタスクでなければなりません。

  • 解決した方法 # 4

    OPのコメントを踏まえて:

    <前>ウィズウィズ

    そして、他の人が言ったように、 variable = None  キーワード。

  • 解決した方法 # 5

    var xをNoneとして定義することもできます

    <前>ウィズウィズ is_defined = variable is not None

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ vb.net - OracleCommand ExecuteNonQuery with Async