如何用 Python 编写内联注释

在 Python 中有结束单行注释的方法吗?

差不多

/* This is my comment */ some more code here...
59536 次浏览

不,在 Python 中没有内联注释。

来自 文件:

注释以散列字符(#)开头,该字符不属于 字符串文字,在物理线的末端结束。注释 表示逻辑行的结束,除非隐式的行连接 语法忽略注释,而不忽略注释 代币。

Python 中的空白非常重要,除了到行尾的 #注释之外,不允许使用任何其他类型的注释。拿这个代码来说:

x = 1
for i in range(10):
x = x + 1
/* Print. */ print x

因为缩进决定了范围,所以解析器无法很好地了解控制流。它不能合理地消除注释,然后在注释之后执行代码。(它还降低了代码的可读性。)所以没有内联注释。

这是非常可怕的,但是你可以把任何文本转换成一个字符串,然后把这个字符串的长度乘以零,或者把它转换成任何类型的无效代码。 例子

history = model.fit_generator(train_generator,steps_per_epoch=8,epochs=15+0*len(", validation_data=validation_generator"), validation_steps=8,verbose=2)

不,在 Python 中没有内联块注释。 但是你可以把你的评论(内联)放在右边。 这允许您在同一行上使用语法和注释。 不管怎样,在代码左边添加注释会让阅读变得困难,所以..。

例如:

X = 1 # 我的变量

如果您正在对代码执行类似于 sed操作的操作,并且确实需要在不干扰行的其余部分的情况下插入纯文本,那么您可以尝试这样的操作:

("This is my comment", some more code here...)[1]

艾格,

my_variable = obsolete_thing + 100

sed -e 's/obsolete_thing/("replacement for &", 1345)[1]/'可以转化为:

my_variable = ("replacement for obsolete_thing", 1234)[1] + 100

可以插入内联注释。 像这样

x=1; """ Comment """; x+=1; print(x);

我的蟒蛇版本是 3.6.9

钢琴的八度是编号的,音符的频率是已知的 (见维基百科)。 我想在一个频率列表内联注释音符 同时保持标准的人类可读的音符顺序。 我是这么做的: 展示几个八度。

def A(octave, frequency):
"Octave numbering for twelve-tone equal temperament"
return frequency


NOTE=[
155.5635 , 164.8138, 174.6141, 184.9972, 195.9977, 207.6523,
A(3,220.0000), 233.0819, 246.9417, 261.6256, 277.1826, 293.6648,
311.1270 , 329.6276, 349.2282, 369.9944, 391.9954, 415.3047,
A(4,440.0000), 466.1638, 493.8833, 523.2511, 554.3653, 587.3295]

当然,可以调整 setup.cfg 并注释以满足 pycodestyle, 薄片,还有薄片。

我认为维护列并将 A4注释为 A (4,440) 优于执行严格的风格规则。

忽略形式参数的函数只运行一次 在列表初始化时。 这不是一个重大的成本。 在 python 中可以进行内联注释。 你只需要愿意通融一下风格规则。

我错过了函数中主要针对 临时注释掉参数的内联注释,就像其他语言中的内联注释一样:

afunc(x, /*log=True*/, whatever=True)

我想,唯一的解决办法就是把它们分开,比如:

afunc(
x,
# log=True,
whatever=True,
)

然而,由于 python 经常被用作快速成型语言,而且函数(由于没有重载)通常有很多可选参数,所以这个解决方案并不是非常“ pythonic”... ..。