名前空間name space

840 ワード

1、名前空間は名前xと1のバインド関係を格納する場所である
2、pythonには多くの名前空間があり、それぞれの場所には自分の名前空間があり、互いに干渉せず、異なる空間の2つの同じ名前の変数の間には何のつながりもありません.
3、名称空間は4種類ある:LEGB
  • locals:関数内部の名前空間、一般的に関数の局所変数および形式パラメータ
  • を含む
  • enclosing function:ネスト関数における外部関数の名前空間、fun 2がfun 1にネストすると、fun2にとってfun1の名前空間はenclosing.
  • globals:現在のモジュール空間、モジュールはpyファイルです.すなわちglobals()はグローバル変数に似ている.
  • builtins:モジュール空間、すなわち変数または関数の名前空間を内蔵し、print(dir(builtins))は含まれる値を表示します.

  • 4、異なる変数の役割ドメインの違いは、この変数が存在する名前空間によって決まる.
    スコープ
    グローバル範囲:グローバル生存、グローバル有効
    ローカルレンジ:一時生存、ローカル有効
    役割ドメインメソッドglobals()、locals()の表示
    5、役割ドメインの検索範囲
    すなわちlocals->enclosing function->globals->builtinsです.1階1階の検索は、見つかった後、検索を停止し、最後に見つからなかった場合はNameErrorの異常を投げ出す.