我发现 python 可以很容易地以“lisp”风格进行编码。
经验:
正常方式:
if a:
do_something()
“功能”方式:
(a and do_something())
正常方式:
if not a:
do_somthing()
elif b:
do_otherthing()
“功能”方式
((not a and do_something()) or (b and do_otherthing()))
正常方式:
a = bla.get_a()
if a is None:
a = A()
“功能”方式:
a = (bla.get_a() or A())
这个功能非常吸引人,我可以在一行中编码,而这必须以正常方式写成几行。
但我不知道它是“pythonic”还是比平时更糟。
google coding stype 也没有定义哪个更符合规则。