我正在使用 python 3 在我的命令行界面上运行代码。但是,我很困惑为什么dis.distb()
不给我一个汇编语言代码来print("Hello World)
解决缺少引号的错误。
C:\Users\jarvis>python
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import dis
>>> print("Hello World)
File "<stdin>", line 1
print("Hello World)
^
SyntaxError: EOL while scanning string literal
>>> dis.distb()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\jarvis\AppData\Local\Programs\Python\Python37-32\lib\dis.py", line 86, in distb
while tb.tb_next: tb = tb.tb_next
AttributeError: 'NoneType' object has no attribute 'tb_next'
此代码为我提供了缺少字母“t”的打印功能的汇编代码
>>> prin("Hello World")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'prin' is not defined
>>> dis.distb()
1 --> 0 LOAD_NAME 0 (prin)
2 LOAD_CONST 0 ('Hello World')
4 CALL_FUNCTION 1
6 PRINT_EXPR
8 LOAD_CONST 1 (None)
10 RETURN_VALUE
>>>
上面的错误类型有什么区别?我试图了解 python 在这种情况下是如何工作的。