ホームページ  >  記事  >  バックエンド開発  >  Python 組み込み関数のローカル

Python 組み込み関数のローカル

高洛峰
高洛峰オリジナル
2016-11-05 14:17:081247ブラウズ

英語ドキュメント:

locals()

現在のローカルシンボルテーブルを表す辞書を更新して返します。自由変数は、関数ブロックで呼び出されたときに locals() によって返されますが、クラスブロックでは返されません。 :

1. この関数は、globals 関数 (グローバル変数を返す) と同様に、現在のスコープ内のローカル変数とその値で構成される辞書を返します

>>> locals()
{&#39;__package__&#39;: None, &#39;__loader__&#39;: <class &#39;_frozen_importlib.BuiltinImporter&#39;>, &#39;__doc__&#39;: None, &#39;__name__&#39;: &#39;__main__&#39;, &#39;__builtins__&#39;: <module &#39;builtins&#39; (built-in)>, &#39;__spec__&#39;: None}

>>> a = 1

>>> locals() # 多了一个key为a值为1的项
{&#39;__package__&#39;: None, &#39;__loader__&#39;: <class &#39;_frozen_importlib.BuiltinImporter&#39;>, &#39;a&#39;: 1, &#39;__doc__&#39;: None, &#39;__name__&#39;: &#39;__main__&#39;, &#39;__builtins__&#39;: <module &#39;builtins&#39; (built-in)>, &#39;__spec__&#39;: None}

2. 関数内で使用できます。

>>> def f():
    print(&#39;before define a &#39;)
    print(locals()) #作用域内无变量
    a = 1
    print(&#39;after define a&#39;)
    print(locals()) #作用域内有一个a变量,值为1

    
>>> f
<function f at 0x03D40588>
>>> f()
before define a 
{} 
after define a
{&#39;a&#39;: 1}

3. 返された辞書セットは変更できません。

りー

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。