if statement, with function inside it: if (t = Test()) == True:

MRAB google at mrabarnett.plus.com
Fri Apr 24 14:15:51 CEST 2009

GC-Martijn wrote:
> On 24 apr, 12:15, Chris Rebert <c... at rebertia.com> wrote:
>> On Fri, Apr 24, 2009 at 3:00 AM, GC-Martijn <gcmart... at gmail.com> wrote:
>>> Hello,
>>> I'm trying to do a if statement with a function inside it.
>>> I want to use that variable inside that if loop , without defining it.
>>> def Test():
>>>    return 'Vla'
>>> I searching something like this:
>>> if (t = Test()) == 'Vla':
>>>    print t # Vla
>>> or
>>> if (t = Test()):
>>>    print t # Vla
>>> ------------------------------------------
>>> The long way
>>> t = Test()
>>> if (t == 'Vla':
>>>    print t # must contain Vla
>> Disregarding some ugly hacks, Python does not permit assignment in
>> expressions, so what you're asking for is not possible.
>> For the goods of readability, prevention of errors, and simplicity,
>> Python forces you to do it the "long way" (the Right Way(tm) if you
>> ask most Python partisans).
>> If you could explain your situation and the context of your question
>> in greater detail, someone might be able to suggest an alternate
>> structure for your code which obviates your desire for such a
>> construct.
> Oke, thanks.
> I will use the (correct) long way.
It's possible in C, but sometimes you might write '=' where you intended
'=='. It happens. I've done it myself. :-(

Sometimes it's an annoying restriction, but it does reduce bugs.

More information about the Python-list mailing list