在 python 中使用 pass 语句作为使代码更具可读性的一种方式?有关系吗?

Posted

技术标签:

【中文标题】在 python 中使用 pass 语句作为使代码更具可读性的一种方式?有关系吗?【英文标题】:Using pass statement in python as a way to make code more readable? Does it matter? 【发布时间】:2018-08-01 14:37:13 【问题描述】:

我正在研究如何在 python 中使用 pass 语句。我看过 (How to use the pass statement in Python) 并在阅读答案时提出了一些关于 pass 声明的其他用途的问题......

我应该在 python 中使用 pass 语句来使我的代码更具可读性吗?

以这种方式使用 pass 语句会不会给我带来任何问题?

例如:

下面是一个超级简单的程序,基本上说如果某人小于或等于 30 岁,不要做任何事情(通过)。我知道如果我不通过,我会得到一个缩进错误。然后,如果年龄大于 30,我有我的 elif,它会打印出“您已超过 30”。

age = 32

if age <= 30:
    pass
elif age > 30:
    print("You are older than 30")

现在我可以这样写代码了:

age = 32

if age > 30:
    print("You are older than 30")

但是,就代码可读性而言,添加更多代码并使整体清晰明确是否有助于我其他可能在未来使用代码的人?以这种方式编码会给我带来任何问题吗?以这种方式使用 pass 语句是否会导致我打嗝?

【问题讨论】:

【参考方案1】:

编辑 1

如果您的代码使用不必要的语句或循环、异常处理、更多变量等,则会引发打嗝和减速……您可以使用 linter 来解决该问题,例如 pylint


来自 Python 之禅,作者 Tim Peters

Simple is better than complex.
Readability counts.

您可以像下面的 sn-p 一样重写您发布的代码,以保持简单,避免不必要的检查 if age &lt;= 30,例如,并使其更具可读性

age = 32

if age > 30:
    print("You are older than 30")
else:
    pass

至于代码规模和可读性更好,当然可以使用pass语句,cmets,OOP等...

当然,还有很多其他技术可以遵循我没有提到的这些术语。

【讨论】:

【参考方案2】:

pass 指令的合理性如下:

class MyException(Exception):
    pass

或者在编写测试时,功能还没有准备好。 在我看来,为了可读性,你总是需要去掉不必要的分支。和代码:

age = 32

if age > 30:
    print("You are older than 30")

看起来更好,更具可读性。

【讨论】:

我完全同意,通过意味着这并不重要,在这种情况下我不做任何事情,所以我认为在条件语句中使用它没有任何优势,因为我必须停下来阅读条件,然后移动过来做......什么都没有【参考方案3】:

pass 关键字用于语言词法分析器。每个冒号 : 后的第一行都会减去块的缩进。如果没有pass,下面的代码就会有歧义。

if condition:
do_something()

至于你的问题,我建议只在需要的地方使用pass。代码越短越好。

【讨论】:

以上是关于在 python 中使用 pass 语句作为使代码更具可读性的一种方式?有关系吗?的主要内容,如果未能解决你的问题,请参考以下文章

Python中 pass语句的作用

Python pass语句作用与用法

8python break continue pass语句

python break ,continue和 pass 语句

二级Python中的pass语句

值得收藏!16段代码入门Python循环语句