Python 一种方法如何比另一种方法更像蟒蛇?
显然 方法1Python 一种方法如何比另一种方法更像蟒蛇?,python,Python,显然 方法1 if var in ['string one', 'string two']: do_something() 更像是蟒蛇,而不是: 方法2 if var == 'stringone' or var == 'stringtwo': dosomething() 为什么方法1被认为比方法2更像蟒蛇 Pythonic就是使用Python构造和数据结构,并使用干净、可读的习惯用法 发件人: 简单地说,第一种方法比第二种方法更容易阅读——它比第一种方法具有更少的样板文件和更
if var in ['string one', 'string two']:
do_something()
更像是蟒蛇,而不是:
方法2
if var == 'stringone' or var == 'stringtwo':
dosomething()
为什么方法1被认为比方法2更像蟒蛇
Pythonic就是使用Python构造和数据结构,并使用干净、可读的习惯用法
发件人:
简单地说,第一种方法比第二种方法更容易阅读——它比第一种方法具有更少的样板文件和更少的开销。任何Python程序员都可以查看第一个,看到有一个检查对象列表,它读起来比第二个更像纯英语。如果你扩展了被检查的事物的列表,第一个例子会像:
if var in ['string one', 'string two', 'string three']:
# If var is one of string one, string two, or string three.
do_something()
第二个听起来像:
if var == 'stringone' or var == 'stringtwo' or var == stringthree:
# If var is equal to stringone, or var is equal to stringtwo, or var is equal to stringthree.
dosomething()
将第一种方法扩展到更多字符串更容易:
if var in ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight']:
第二种方法很快变得笨拙:
if var == 'one' or var == 'two' or var == 'three' or ...:
此外,第一种方法可用于测试函数调用的返回值,并且只对其求值一次:
if bigCalculation() in ['one', 'two', 'three']:
第二种方法每次都必须重新评估调用,从而导致性能下降(特别是在调用的计算代价很高的情况下)
非常感谢。现在这是有道理的谢谢你,你的回答在实践中是有意义的,它向我展示了第一种方法是如何更有效的。虽然它没有直接回答方法1比方法2更具python风格。无论如何谢谢你!你的答案与另一个答案相结合,可以很好地阅读并更好地理解这两种方法(另一种是Pythonic意义上的,而你的则是实际意义上的)。@Rahul Sharma:我认为它清楚地描述了为什么方法1比另一种更具Pythonic意义。
if bigCalculation() == 'one' or bigCalculation() == 'two' or ...: