【发布时间】:2016-09-07 02:29:49
【问题描述】:
我还在探索python。今天我遇到了多行字符串。如果我这样做:
a = '''
some-text
'''
变量a的内容是'\nsome-text\n'。但这让我很困惑。我一直认为,如果您将某些内容括在三个单引号 (''') 中,那么您就是在将其注释掉。所以上面的语句在 C++ 中就相当于这样:
a = /*
some-text
*/
我错过了什么?
【问题讨论】:
-
评论很好解释here
-
我一直认为,如果你用三个单引号 (''') 将某些内容括起来,你就是在注释掉它。 嗯,你不是。你把那个东西包装在一个字符串中。字符串,甚至是文档字符串,在技术上都不是 cmets(它们被评估,cmets 不是)。
-
回答您的问题,请参阅stackoverflow.com/a/7057488/622306
-
@GianlucaMancini 所以没有多线 cmets 这样的东西。并且多行字符串加倍作为文档字符串。两者都被编译。但单行 cmets 不是。对吗?
-
@daltonfury42 您可以使用 any 字符串作为文档字符串:
def f():\n"hello"\n return 42工作正常,并提供"hello"作为f.__doc__。使用多行字符串作为 cmets 所做的与在随机位置使用数字完全相同:`do_something; 42; do_something_else'。 Python 计算表达式,但由于它的值没有保存在任何地方,它是无用的;如果您使用的是文字,它将被编译出来,除非用作文档字符串。