@bergus
2016-01-09T00:00:07.000000Z
字数 441
阅读 2121
python
三元表达式
bools.py
# encoding=utf-8
def t(func, arg1, arg2):
"""
苦于python的三元表达式,远没有其他语言的方便,所以就自己创造了一个
>>> t(lambda x: x > 4, 'ok', 'no')(2)
'no'
>>> t(3 > 4, 'ok', 'no')
'no'
>>> t(lambda x: x > 4, lambda x:x*3, 'no')(6)(3)
9
>>> t(lambda x: x > 4,t(lambda x: x > 6,'yes','no2'),'no1')(5)(1)
'no2'
:param func:
:param arg1:
:param arg2:
:return:
"""
if not callable(func):
if func:
return arg1
else:
return arg2
else:
def _t(*args, **argks):
if func(*args, **argks):
return arg1
else:
return arg2
return _t