In article <87************@localhost.localdomain>,
Gary Wessle <ph****@yahoo.com> wrote:
Hi
is there a way to make an assignment in the condition of "if" and use
it later, e.g.
nx = re.compile('regex')
if nx.search(text):
funCall(text, nx.search(text))
nx.search(text) is evaluated twice, I was hoping for something like
nx = re.compile('regex')
if x = nx.search(text):
funCall(text, x))
Personally, I find the C-style idiom you long for to be convenient and
useful. That being said, it does not exist in Python, by deliberate design
decision. In Python, assignment is not an operator with side effects like
in C or Java, but a statement. What you need to do is:
nx = re.compile('regex')
x = nx.search(text)
if x:
funCall(text, x))
The lack of embedded assignments leads to slightly more verbose code in
situations like this, but on the other hand, it avoids the typical C
disaster of writing a whole function as a one liner.