Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 模块';s专用符号表和函数';s全局符号表_Python - Fatal编程技术网

Python 模块';s专用符号表和函数';s全局符号表

Python 模块';s专用符号表和函数';s全局符号表,python,Python,读书时 ,我遇到 每个模块都有自己的专用符号表,该表被模块中定义的所有函数用作全局符号表。因此,模块的作者可以在模块中使用全局变量,而不用担心与用户的全局变量发生意外冲突。另一方面,如果您知道自己在做什么,您可以使用用于引用其函数的相同符号modname.itemname来触摸模块的全局变量 模块的“专用符号表”和函数“全局符号表”使我感到困惑 在本文件中,内容如下: Python编程语言广泛支持创建和操作符号表。[2]可以查询的属性包括给定符号是自由变量还是绑定变量、是块作用域还是全局作用域、

读书时 ,我遇到

每个模块都有自己的专用符号表,该表被模块中定义的所有函数用作全局符号表。因此,模块的作者可以在模块中使用全局变量,而不用担心与用户的全局变量发生意外冲突。另一方面,如果您知道自己在做什么,您可以使用用于引用其函数的相同符号modname.itemname来触摸模块的全局变量

模块的“专用符号表”和函数“全局符号表”使我感到困惑

在本文件中,内容如下:

Python编程语言广泛支持创建和操作符号表。[2]可以查询的属性包括给定符号是自由变量还是绑定变量、是块作用域还是全局作用域、是否导入以及它所属的命名空间

这似乎有点复杂

如何理解专用和全局符号表,我可以打印它们吗

根据PM 2Ring的评论,我创建了一个脚本:

#symbol_table.py
print(global())
$ python symbol_table.py
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x10bddf278>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'symbol_table.py', '__cached__': None}
#symbol_table.py
打印(全局()
$python symbol_table.py
{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

{'''''u______________________'名称:''u____'主名称',''u_______':无,
称为全局符号表?

有一个
globals()
函数,它返回一个全局名称的dict。看看
dir(模块名称)
知道了,谢谢。为什么不称为全局表和私有表呢?pm2ring-