字符串字面值与其他字面值类似。如果您只输入整数,它也可以工作:
def func():
1
然而,如果只使用注释,它不起作用:
def func():
# test
# IndentationError: expected an indented block
尽管文档字符串也被添加为(保存在__doc__
属性中),它也是函数级常量:def func():
"""I'm a function"""
>>> func.__code__.co_consts
("I'm a function", None)
因此,如果一个函数的唯一内容是字符串文字,那么它实际上被"解析"和"编译"的方式不会改变。除了它也有一个非None的__doc__
属性。
这对于abstractmethod
非常方便(例如,在"Python中的抽象方法体"中),在那里你不需要实际的函数体。