为什么不打印此函数顶部的字符串?
Why wasn't the string at the top of this function printed?
我在教程中遇到了以下功能。当我调用该函数时,不会打印 "This prints a passed string into this function"
。为什么函数调用时不打印这段文字?
def printme(str):
"This prints a passed string into this function"
print str
return
# Now you can call printme function
printme("I'm first call to user defined function!")
printme("Again second call to the same function")
它确实被执行了,但是评估和从不使用字符串实际上是一个空操作。它在 REPL 中工作的原因是因为 REPL 是 REPL,即读取 eval print 循环。普通执行不存在打印步骤
您看到的是一个文档字符串,简称 docstring。
文档字符串是一个字符串,应该记录它所附加的东西。在您的情况下,它附加到一个函数,因此应该记录该函数。您还可以拥有 classes 和模块的文档字符串。
您可以通过简单地将字符串作为函数(或 class 或模块)中的第一件事来创建文档字符串。解释器然后将其用作文档字符串并使其在特殊的 __doc__
属性中可用:
>>> def printme( str ):
"This prints a passed string into this function"
print str
>>> printme.__doc__
'This prints a passed string into this function'
文档字符串也被 help()
函数使用:
>>> help(printme)
Help on function printme in module __main__:
printme(str)
This prints a passed string into this function
文档字符串的常见做法是使用三重引号,以明确它们应该是实际的文档字符串,而不仅仅是放错位置的“正确”字符串。三重引号用于创建多行字符串,此外还允许文档字符串也是多行的:
def printme (str):
'''
Print the string passed in the `str` argument to the
standard output. This is essentially just a wrapper
around Python’s built-in `print`.
'''
print(str)
PEP 257 中还描述了各种文档字符串约定。
我在教程中遇到了以下功能。当我调用该函数时,不会打印 "This prints a passed string into this function"
。为什么函数调用时不打印这段文字?
def printme(str):
"This prints a passed string into this function"
print str
return
# Now you can call printme function
printme("I'm first call to user defined function!")
printme("Again second call to the same function")
它确实被执行了,但是评估和从不使用字符串实际上是一个空操作。它在 REPL 中工作的原因是因为 REPL 是 REPL,即读取 eval print 循环。普通执行不存在打印步骤
您看到的是一个文档字符串,简称 docstring。
文档字符串是一个字符串,应该记录它所附加的东西。在您的情况下,它附加到一个函数,因此应该记录该函数。您还可以拥有 classes 和模块的文档字符串。
您可以通过简单地将字符串作为函数(或 class 或模块)中的第一件事来创建文档字符串。解释器然后将其用作文档字符串并使其在特殊的 __doc__
属性中可用:
>>> def printme( str ):
"This prints a passed string into this function"
print str
>>> printme.__doc__
'This prints a passed string into this function'
文档字符串也被 help()
函数使用:
>>> help(printme)
Help on function printme in module __main__:
printme(str)
This prints a passed string into this function
文档字符串的常见做法是使用三重引号,以明确它们应该是实际的文档字符串,而不仅仅是放错位置的“正确”字符串。三重引号用于创建多行字符串,此外还允许文档字符串也是多行的:
def printme (str):
'''
Print the string passed in the `str` argument to the
standard output. This is essentially just a wrapper
around Python’s built-in `print`.
'''
print(str)
PEP 257 中还描述了各种文档字符串约定。