显然,这:
def f():
pass
# maybe the function is over
pass # oh wait, it's not
f()
是有效语法,但不是:
def f():
pass
''' maybe the function is over '''
pass # oh wait, it's not
f()
这让我感到非常惊讶。所以我的问题是:
是第一个有效,因为它以在语言中定义为注释行的#
开头,因此将其忽略,并且其缩进不会终止功能或开始新的功能。
后者是不同的,它是一个字符串,但是从未使用过它的值,您可以使用它来实现多行注释,但解释器仍会尝试将该字符串作为代码来评估,因此该字符串的缩进对于解释器很重要它可以终止作用域。
对于第二个类似的东西>
'''comment''''
给交涉者的代码就是这个
my_var = '''comment'''