gpt4 book ai didi

Python:将 'one-line if' s 替换为三元 if,好主意与否

转载 作者:行者123 更新时间:2023-11-28 21:15:37 30 4
gpt4 key购买 nike

在我目前维护的代码中,我经常看到这样的“单行 if”结构:

if self.verbose >= 1:
print("Starting...")

我想将其替换为:

print("Starting...") if self.verbose >= 1 else None

甚至:

self.verbose >= 1 and print("Starting...")

就性能和/或可维护性而言,这是好主意还是坏主意?

编辑:尽管允许,但我不想将它变成完全单行代码,例如,
if self.verbose > =1: print("开始...")

最佳答案

我不确定你为什么要那样做。我认为您提出的所有替代方案都不太可读。 (但这当然是主观的)

一般情况下如何删除条件?这至少会消除 if 的重复。

def print_verbose(self, *args, **kwargs):
if self.verbose>=1:
print(*args, **kwargs)

...
self.print_verbose("Starting...")

或者甚至迁移到使用已经支持不同日志记录级别的logging 模块。使用配置的日志记录,这将变为:(假设 logger 是通过 logging.getLogger() 为该模块创建的)

logger.verbose("Starting")

关于性能...如果您编写 if 的方式实际上对这个程序的性能很重要,那么 Python 本身可能不是一个好主意;)(差异将以纳秒为单位来衡量,它很可能无关紧要)

关于Python:将 'one-line if' s 替换为三元 if,好主意与否,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29819002/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com