源代码 1:
if x > 0:
y = math.log(x)
else:
y = float('nan')
源代码 1 的条件表达式:
y = math.log(x) if x > 0 else float('nan')
源代码 2:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
源代码 2 的条件表达式:
def factorial(n):
return 1 if n == 0 else n * factorial(n - 1)
条件表达式的另一个用途是处理可选参数。例如:
def __init__(self, name, contents=None):
self.name = name
if contents == None:
contents = []
self.pouch_contents = contents
对应的条件表达式方式为:
def __init__(self, name, contents=None):
self.name = name
self.pouch_contents = [] if contents == None else contents
本文参考自《像计算机科学家一样思考Python (第2版)》