I have a function, generally described as so:
def function(args):
if condition:
if condition2:
function(args+1)
elif condition3:
print "text"
return True
else:
return False
which is used in:
if function(args):
print "ok"
so here basically "text" will print out when condition3 is true but it
will not print out "ok" when condition3 is true. When it''s true it
should print out borth "text" and "ok"
解决方案"agent-s"
I have a function, generally described as so:
def function(args):
if condition:
if condition2:
function(args+1)
elif condition3:
print "text"
return True
else:
return False
You''ve simplified this, presumably to make the code more
clear. Unfortunately what remains isn''t executable, so we can''t see
the behaviour that confuses you.
Please write a minimal example that demonstrates the behaviour you
want explained.
--
\ "I doubt, therefore I might be." -- Anonymous |
`\ |
_o__) |
Ben Finney
On Feb 14, 4:15 pm, "agent-s"
I have a function, generally described as so: def function(args):
if condition:
if condition2:
function(args+1)
return None
elif condition3:
print "text"
return True
else:
return False
else:
return None
There are two cases, indicated above, where you don''t explicitly do a
"return", so you fall off the end of the function, and Python returns
None.
Then when the function''s caller tests the returned value, None is
treated as logically false.
which is used in:
if function(args):
print "ok"
so here basically "text" will print out when condition3 is true but it
will not print out "ok" when condition3 is true. When it''s true it
should print out borth "text" and "ok"
In the second last sentence, it is difficult to determine what you
think is expected behaviour and what you say is the actual behaviour.
In the last sentence, what does the first "it" refer to?
If the knowledge about returning None doesn''t help you, try some
standard(??) techniques like inserting print statements or debugger
break-points.
HTH,
John
On Tue, 13 Feb 2007 21:15:19 -0800, agent-s wrote:
I have a function, generally described as so:
[snip function]
which is used in:
if function(args):
print "ok"
so here basically "text" will print out when condition3 is true but it
will not print out "ok" when condition3 is true. When it''s true it
should print out borth "text" and "ok"
Thank you for sharing. Do you have an actual question?
--
Steven D''Aprano