假设这段代码:
>>> iterator=filter(lambda x: x % 3 == 0, [2, 18, 9, 22, 17, 24, 8, 12, 27])
>>> x=int()
>>> locals()
{'__package__': None, '__spec__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, 'iterator': <filter object at 0x02E732B0>, 'x': 0, '__doc__': None}
>>> globals()
{'__package__': None, '__spec__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, 'iterator': <filter object at 0x02E732B0>, 'x': 0, '__doc__': None}
>>> dir()
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'iterator', 'x']
>>>
Run Code Online (Sandbox Code Playgroud)
locals,globals和dir有什么区别?什么是用法?
Ana*_*mar 10
在全球范围内,无论是locals()和globals()返回相同的字典全局命名空间.但是在函数内部,locals()将副本返回到本地名称空间,而globals()返回全局名称空间(包含全局名称).所以它们之间的区别仅在函数中可见.举例说明 -
>>> locals() == globals() #global scope, that is directly within the script (not inside a function.
True
>>> def a():
... l = 1
... print('locals() :',locals())
... print('globals() :',globals())
...
>>> a()
locals() : {'l': 1}
globals() : {'BOTTOM': 'bottom', 'PROJECTING': 'proj....
Run Code Online (Sandbox Code Playgroud)
从文件globals() -
全局()
返回表示当前全局符号表的字典.这始终是当前模块的字典(在函数或方法内部,这是定义它的模块,而不是调用它的模块).
当地人()
更新并返回表示当前本地符号表的字典.locals()在函数块中调用时返回自由变量,但在类块中不调用.
注意:不应修改此词典的内容; 更改可能不会影响解释器使用的本地和自由变量的值.
要回答有关使用的问题,一种用法是能够使用字符串来访问变量/名称.例如,如果你有一个名为的变量a,并且你想使用字符串来访问它的值 - 'a'你可以使用globals()或locals()作为 - globals()['a'],这会返回全局变量的值a或者locals()['a']返回a当前命名空间的值(直接在脚本内部时是全局命名空间,如果在函数内部则是本地命名空间
dir()显示作为参数传入的对象的属性列表,没有参数,它返回当前本地命名空间中的名称列表(类似于locals().keys()).从文件dir() -
DIR([对象])
如果没有参数,则返回当前本地范围中的名称列表.使用参数,尝试返回该对象的有效属性列表.
您可以注意到和之间的区别locals,globals如果您尝试在函数内执行它们.如果您尝试在不创建嵌套作用域的情况下从控制台运行它们,那么显而易见的结果是您将无法发现任何差异.
locals返回在本地范围内声明的变量字典:https://docs.python.org/2/library/functions.html#localsglobals返回全局范围内声明的变量字典:https://docs.python.org/2/library/functions.html#globalsdirlocals如果您不提供参数,则以类似的方式工作,但如果您将对象作为参数传递,则它会返回该对象的有效属性列表:https://docs.python.org/2/library /functions.html#dir| 归档时间: |
|
| 查看次数: |
5214 次 |
| 最近记录: |