我在打印后添加了冒号和分号,但解释器没有抛出错误。
请使用python3.8.x(编辑(运行
x=5
print:(x)
print;(x)
解释器认为冒号是一个类型注释。这就是为什么它在早期版本的Python中引发SyntaxError
,但在Python 3.6+中是有效语法。
在Python的后续版本中,这是有效的
a: int
这个也是
import sys
def exclaim(string):
sys.stdout.write(f"{string}!")
print = exclaim
print("Hello")
也就是说,你可以注释变量的类型。您可以重新分配print
。
所以当你做CCD_ 3时,解释器只是认为你在把CCD_;类型";5
。
分号是有效的Python,用于将两个单独的语句放在同一行。他们只是被";unythonic";。你确实看到它们有时被用来做import pdb; pdb.set_trace()
之类的事情
对于print;(x)
,解释器将其视为两个不同的语句,print
和(x)
。口译员打印出"<内置功能打印>quot;以及";5〃;。打印功能是一个内置功能。x设置为5,所以它也打印出5。print:(x)
是@Batman的答案中所说的类型注释