gpt4 book ai didi

python - Python 中的符号表

转载 作者:太空狗 更新时间:2023-10-29 18:18:14 41 4
gpt4 key购买 nike

我们如何查看 python 源代码的符号表?

我的意思是,Python 在实际运行每个程序之前为每个程序创建一个符号表。所以我的问题是如何将符号表作为输出?

最佳答案

Python 在本质上是动态的而不是静态的。与编译目标代码中的符号表不同,虚拟机为您的变量提供了一个可寻址的命名空间。

dir()dir(module) 函数返回代码中该点的有效命名空间。它主要用于交互式解释器,但也可用于代码。它返回一个字符串列表,每个字符串都是一个具有某个值的变量。

globals() 函数返回变量名到变量值的字典,此时变量名在范围内被认为是全局的。

locals() 函数将变量名字典返回到变量值,此时变量名在范围内被认为是局部的。

$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> locals()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}
>>> globals()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__']
>>> import base64
>>> dir(base64)
['EMPTYSTRING', 'MAXBINSIZE', 'MAXLINESIZE', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_b32alphabet', '_b32rev', '_b32tab', '_translate', '_translation', '_x', 'b16decode', 'b16encode', 'b32decode', 'b32encode', 'b64decode', 'b64encode', 'binascii', 'decode', 'decodestring', 'encode', 'encodestring', 'k', 're', 'standard_b64decode', 'standard_b64encode', 'struct', 'test', 'test1', 'urlsafe_b64decode', 'urlsafe_b64encode', 'v']

关于python - Python 中的符号表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085450/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com