我在教程中遇到了以下函数。当我调用该函数时,不会打印"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")
答案 0 :(得分:10)
您看到的是文档字符串,或简称 docstring 。
docstring是一个字符串,用于记录它所附加的东西。在您的情况下,它附加到一个函数,因此应该记录该函数。您还可以拥有类和模块的文档字符串。
您可以通过简单地将字符串放在函数(或类或模块)中作为第一件事来创建文档字符串。然后,解释器将其用作文档字符串,并使其特殊地用于__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中也描述了各种文档字符串约定。
答案 1 :(得分:5)
它确实被执行了,但是评估和从不使用字符串实际上是一个无操作。它在REPL中工作的原因是REPL是RE P L,即read eval print 循环。普通执行中不存在打印步骤。