gpt4 book ai didi

分配范围内的 Python 'if' 可以接受吗?

转载 作者:太空狗 更新时间:2023-10-30 01:51:55 25 4
gpt4 key购买 nike

星期五我与某人讨论了以下构造:

class C(....

c = C()
d = C()
...

(c if some_boolean else d).some_function_of_class_C()

是否可以接受/鼓励这种 if 语句?

问题是很多和我一起工作的人都有 C 经验,但没有那么多 Python 经验,并且不习惯这样的陈述(就像列表理解一样)。但是,Python 不是 C,我认为应该利用 Python 语言的优势。还是不行?

(顺便说一句,我使用了普通的函数名和变量名,但这只是为了让这个例子保持样本。而且我不仅调用 f() 还调用了更多函数(比如 f().g( ) 在那种情况下我必须完全重复。

最佳答案

您的代码在技术上没有任何问题,但看到这样的代码有点奇怪和令人惊讶。

将您的语句分成两个单独的语句可以提高可读性:

c = c1 if some_boolean else c2
c.some_function_of_class_C()

你选择的糟糕的变量名仍然让它看起来很糟糕。但是改变变量名也有助于提高可读性:

vehicle = plane if distance > 1000 else car
vehicle.travel()

在我看来,这比您最初提议的很多更具可读性,而且只做了很小的改动。

关于分配范围内的 Python 'if' 可以接受吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12020454/

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