我最近开始研究Python,但是找不到如何实现多行注释。大多数语言都有块注释符号,例如
/*
*/
我在Python中尝试过此方法,但它引发了错误,因此这可能不是正确的方法。Python实际上是否具有多行注释功能?
我最近开始研究Python,但是找不到如何实现多行注释。大多数语言都有块注释符号,例如
/*
*/
我在Python中尝试过此方法,但它引发了错误,因此这可能不是正确的方法。Python实际上是否具有多行注释功能?
Answers:
您可以使用三引号引起来的字符串。如果它们不是文档字符串(类/函数/模块中的第一件事),则将其忽略。
'''
This is a multiline
comment.
'''
(请确保'''
适当缩进引线,以避免出现IndentationError
。)
Guido van Rossum(Python的创建者)在推特上发了一条“专业提示”。
但是,Python的样式指南PEP8 倾向于使用连续的单行注释,这也是在许多项目中都可以找到的。文本编辑器通常具有快捷方式来轻松实现此目的。
test.py
只是为了看看。当我这样做时import test
,将test.pyc
生成一个文件。不幸的是,pyc
文件很大,并且包含整个字符串作为纯文本。我是在误解什么,还是这条推文不正确?
pyc
。我编辑了答案,并将“模块”放入具有文档字符串的内容列表中。
"""
用于文档字符串和'''
块注释非常有用。通过这种方式,您可以环绕'''
通常的文档字符串而不会发生冲突。
从某种意义上说,Python确实具有多行字符串/注释语法,除非多行字符串不用作文档字符串,否则不会生成字节码 -就像- #
前置注释一样。实际上,它的行为就像评论一样。
另一方面,如果您说必须在官方文档中记录此行为才是真正的注释语法,那么可以,您可以肯定地说这不是语言规范的一部分。
无论如何,您的文本编辑器还应该能够轻松注释掉所选区域(通过#
在每个行的前面分别放置一个)。如果不是,请切换到可以的文本编辑器。
没有某些文本编辑功能的Python编程可能会很痛苦。找到合适的编辑器(并知道如何使用它)可以在如何理解Python编程经验方面产生很大的不同。
文本编辑器不仅能够注释掉选定的区域,还应该能够轻松地向左和向右移动代码块,并且当您按时它应该自动将光标置于当前的缩进级别Enter。代码折叠也很有用。
为了防止链路衰减,这是Guido van Rossum的推文的内容:
@BSUCSClub Python提示:您可以将多行字符串用作多行注释。除非用作文档字符串,否则它们不会生成任何代码!:-)
从接受的答案...
您可以使用三引号引起来的字符串。如果它们不是文档字符串(类/函数/模块中的第一件事),则将其忽略。
这是不正确的。与注释不同,三引号字符串仍然会被解析,并且在语法上必须有效,无论它们在源代码中的位置如何。
如果您尝试运行此代码...
def parse_token(token):
"""
This function parses a token.
TODO: write a decent docstring :-)
"""
if token == '\\and':
do_something()
elif token == '\\or':
do_something_else()
elif token == '\\xor':
'''
Note that we still need to provide support for the deprecated
token \xor. Hopefully we can drop support in libfoo 2.0.
'''
do_a_different_thing()
else:
raise ValueError
你会得到...
ValueError: invalid \x escape
...在Python 2.x上...
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 79-80: truncated \xXX escape
...在Python 3.x上。
进行解析器忽略的多行注释的唯一方法是...
elif token == '\\xor':
# Note that we still need to provide support for the deprecated
# token \xor. Hopefully we can drop support in libfoo 2.0.
do_a_different_thing()
r'raw string'
- r'\xor' == '\\xor'
。
'''
“评论”有更多的限制。您只能注释掉整个语句,而注释可以注释掉表达式的某些部分。示例:在C语言中,您可以注释掉一些列表元素:int a[] = {1, 2, /* 3, 4, */ 5};
。使用多行字符串,您将无法执行此操作,因为这会将字符串放入列表中。
在Python 2.7中,多行注释为:
"""
This is a
multilline comment
"""
如果您在班级里,应该正确地选择它。
例如:
class weather2():
"""
def getStatus_code(self, url):
world.url = url
result = requests.get(url)
return result.status_code
"""
weather2
注释实际上是一个文档字符串,因为它是类中的第一件事。
AFAIK,Python没有阻止注释。要注释单个行,可以使用该#
字符。
如果使用的是Notepad ++,则有一个用于块注释的快捷方式。我敢肯定,像gVim和Emacs这样的人也有类似的功能。
如果您发表评论
"""
long comment here
"""
在脚本中间,Python / lint无法识别。折叠将被弄乱,因为以上注释不是标准建议的一部分。最好用
# Long comment
# here.
如果使用Vim,则可以使用commentary.vim之类的插件通过按来自动注释掉较长的注释行Vjgcc
。在其中Vj
选择两行代码,并将gcc
其注释掉。
如果您不想使用上述插件,则可以使用搜索和替换类似
:.,.+1s/^/# /g
这会将当前和下一行的第一个字符替换为#
。
好了,您可以尝试一下(在运行引号时,第一个问题的输入应用引号'
):
"""
print("What's your name? ")
myName = input()
print("It's nice to meet you " + myName)
print("Number of characters is ")
print(len(myName))
age = input("What's your age? ")
print("You will be " + str(int(age)+1) + " next year.")
"""
a = input()
print(a)
print(a*5)
包括在内的任何内容"""
都会被评论。
如果您要查找单行注释,则为#
。
Python中的多行注释:
对我来说,“''和“”都有效。
例:
a = 10
b = 20
c = a+b
'''
print ('hello')
'''
print ('Addition is: ', a+b)
例:
a = 10
b = 20
c = a+b
"""
print('hello')
"""
print('Addition is: ', a+b)
Python中的内联注释以井号字符开头。
hello = "Hello!" # This is an inline comment
print(hello)
你好!
请注意,字符串文字中的哈希字符只是哈希字符。
dial = "Dial #100 to make an emergency call."
print(dial)
拨打#100拨打紧急电话。
哈希字符也可以用于单行或多行注释。
hello = "Hello"
world = "World"
# First print hello
# And print world
print(hello)
print(world)
你好
世界
用三重双引号将文本括起来以支持文档字符串。
def say_hello(name):
"""
This is docstring comment and
it's support multi line.
:param name it's your name
:type name str
"""
return "Hello " + name + '!'
print(say_hello("John"))
你好约翰!
将文本用三重单引号引起来以用于块注释。
'''
I don't care the parameters and
docstrings here.
'''
是的,可以同时使用以下两种:
'''
Comments
'''
和
"""
Comments
"""
但是,在IDE中运行时,您唯一需要记住的是,您必须“运行”整个文件才能被多行代码接受。逐行“运行”将无法正常工作,并会显示错误。
要注释掉Python中的多行代码,只需#
在每一行上使用单行注释:
# This is comment 1
# This is comment 2
# This is comment 3
要在Python中编写“适当的”多行注释,是使用具有"""
语法的多行字符串Python具有文档字符串(或文档字符串)功能。它为程序员提供了一种在每个Python模块,函数,类和方法中添加快速注释的简便方法。
'''
This is
multiline
comment
'''
另外,请注意,您可以通过这样的类对象访问docstring
myobj.__doc__
您可以使用以下内容。这称为DockString。
def my_function(arg1):
"""
Summary line.
Extended description of function.
Parameters:
arg1 (int): Description of arg1
Returns:
int: Description of return value
"""
return arg1
print my_function.__doc__
我建议不要使用"""
多行注释!
这是一个简单的示例,以突出显示可能被视为意外行为的内容:
print('{}\n{}'.format(
'I am a string',
"""
Some people consider me a
multi-line comment, but
"""
'clearly I am also a string'
)
)
现在看一下输出:
I am a string
Some people consider me a
multi-line comment, but
clearly I am also a string
多行字符串不被视为注释,而是与之连接'clearly I'm also a string'
形成一个字符串。
如果要注释多行,请按照PEP 8准则进行注释:
print('{}\n{}'.format(
'I am a string',
# Some people consider me a
# multi-line comment, but
'clearly I am also a string'
)
)
输出:
I am a string
clearly I am also a string
lang-bash
”而不是“ bash
”吗?无论如何,它通常看起来很奇怪(例如,此处为“ Some”),即使它实际上是带有参数的命令行命令。lang-none
(关闭语法突出显示)可能是一个更好的选择。
使用PyCharm IDE。
您可以使用Ctrl + /
comment
和uncomment
代码行。Ctrl + /注释或取消注释当前行或用单行注释注释掉若干行({# in Django templates, or # in Python scripts)
。Pressing Ctrl+Shift+/
对于Django模板中选定的源代码块,该块用{% comment %} and {% endcomment %}
标签包围。
n = 5
while n > 0:
n -= 1
if n == 2:
break
print(n)
print("Loop ended.")
选择所有行,然后按 Ctrl + /
# n = 5
# while n > 0:
# n -= 1
# if n == 2:
# break
# print(n)
# print("Loop ended.")
多行注释实际上在Python中不存在。下面的示例包含一个未分配的字符串,该字符串已通过Python验证是否存在语法错误。
一些文本编辑器,例如Notepad ++,为我们提供了注释掉一段书面代码或单词的快捷方式。
def foo():
"This is a doc string."
# A single line comment
"""
This
is a multiline
comment/String
"""
"""
print "This is a sample foo function"
print "This function has no arguments"
"""
return True
另外,Ctrl+ K是Notepad ++中阻止评论的快捷方式。它#
在所选内容的每行前面添加一个。Ctrl+ Shift+ K用于取消注释。
在其他答案中,我发现最简单的方法是使用IDE注释函数,该函数使用的Python注释支持#
。
我正在使用Anaconda Spyder,它具有:
它将使用注释/取消注释单行/多行代码#
。
我觉得最简单。
例如,一个块注释:
# =============================================================================
# Sample Commented code in spyder
# Hello, World!
# =============================================================================
选择要注释的行,然后使用Ctrl+ ?注释或取消注释Sublime Text中的Python代码。编辑器中。
对于单行,可以使用Shift+ #。
#
是唯一的注释方式。我猜想这样可以更轻松地解释Python脚本。