def isBig(x):
if x > 4:
return \'apple\'
else:
return \'orange\'
This works:
if isBig(y): return isBig(y)
The one liner doesn't work because, in Python, assignment (fruit = isBig(y)) is a statement, not an expression. In C, C++, Perl, and countless other languages it is an expression, and you can put it in an if or a while or whatever you like, but not in Python, because the creators of Python thought that this was too easily misused (or abused) to write "clever" code (like you're trying to).
Also, your example is rather silly. isBig() will always evaluate to true, since the only string that's false is the empty string (""), so your if statement is useless in this case. I assume that's just a simplification of what you're trying to do. Just do this:
tmp = isBig(y)
if tmp: return tmp
Is it really that much worse?