Python 为什么空函数中允许多行注释,但不允许单行注释?
我正在使用python 2.7 如果我编写这样的函数,我的ide将显示预期的缩进Python 为什么空函数中允许多行注释,但不允许单行注释?,python,Python,我正在使用python 2.7 如果我编写这样的函数,我的ide将显示预期的缩进 def foo(): # 但如果我写这篇文章就不会了 def foo(): ''' ''' 发生这种情况有什么原因吗?编译器会忽略注释。当你把注释放在这行时,编译器基本上假装它不存在。但多行字符串是代码的物理元素。Python认识到它的存在,并没有抱怨 如果您想编写一个不做任何事情的函数,至少目前是这样,请使用pass pass是一个关键字,它说“应该有东西放在这里,但我故意不把任何东西放在
def foo():
#
但如果我写这篇文章就不会了
def foo():
'''
'''
发生这种情况有什么原因吗?编译器会忽略注释。当你把注释放在这行时,编译器基本上假装它不存在。但多行字符串是代码的物理元素。Python认识到它的存在,并没有抱怨 如果您想编写一个不做任何事情的函数,至少目前是这样,请使用pass pass是一个关键字,它说“应该有东西放在这里,但我故意不把任何东西放在这里。”“实际上不是一个注释。它的行为类似于一个,但实际上是一个字符串分隔符 尝试:
因为多行或非多行字符串实际上是代码,在函数的开头用作_doc______________________________________________?如果是这样,你能告诉我那是谁/什么吗?注意:这不是多行字符串特有的。下面只有空字符串的def在python中也是有效的。@Robᵩ 好吧,圭多自己也说过。。。谢谢你的链接。
def Foo():
#Comment goes here
pass
>>> s = '''
... '''
>>> print(s)
>>> repr(s)
"'\\n'"
>>> s = #
File "<stdin>", line 1
s = #
^
SyntaxError: invalid syntax
>>> s = '''foo'''
>>> print(s)
foo