how to stop a function execution like...

G

Gaudha

Is there any built-in function to stop execution of a function similar
to stop the program execution by sys.exit?
In the example below, I want to skip statement 2... if the 'if'
condition is satisfied.
Don't advice me to put statement 2 in 'else' block. That's not my
intention.
May be this a simple task. Sorry to say I'm novice in Python,
gentlemen...

def funct :
if (.....) : statement 1
statement 2
 
D

Diez B. Roggisch

Gaudha said:
Is there any built-in function to stop execution of a function similar
to stop the program execution by sys.exit?
In the example below, I want to skip statement 2... if the 'if'
condition is satisfied.
Don't advice me to put statement 2 in 'else' block. That's not my
intention.

Why not? It's from all you tell us perfectly the right thing to do.
May be this a simple task. Sorry to say I'm novice in Python,
gentlemen...

def funct :
if (.....) : statement 1
statement 2


def funct():
if ...:
statement 1
return
statement 2


would also work. But it is not really "better" than using else.

Diez
 
G

Gaudha

Why not? It's from all you tell us perfectly the right thing to do.



def funct():
    if ...:
       statement 1
       return
    statement 2

would also work. But it is not really "better" than using else.

Diez

I considered 'return' as meant only for returning any value. Thank you
sir...
 
P

pdpi

Why not? It's from all you tell us perfectly the right thing to do.

If I understood his post correctly, it's because he really wants to
exit the function early.
If that is the case, in his real situation rather than the tiny
example he posted, using the else clause would translate into:

def funct(params):
if a:
something
else:
rest of the function
goes here
and it goes on for a while
so you just burnt through
an indentation level needlessly

Now we can have a nice philosophical discussion about how using the
else version makes the execution outline more obvious :)
 
D

Dave Angel

Gaudha said:
I considered 'return' as meant only for returning any value. Thank you
sir...
return with no arguments will return a value of None, same as falling
off the end of the function. That can be important to know, as the
caller can therefore test for None.
 
M

mzdude

Is there any built-in function to stop execution of a function similar
to stop the program execution by sys.exit?
In the example below, I want to skip statement 2... if the 'if'
condition is satisfied.
Don't advice me to put statement 2 in 'else' block. That's not my
intention.
May be this a simple task. Sorry to say I'm novice in Python,
gentlemen...

def funct :
    if (.....) : statement 1
    statement 2

sys.exit is a pretty harsh way to stop execution. It usually
means unable to continue. There is nothing that stops you
from putting that in a function.

Another possiblity would be
def funct :
if( .... ) :
statement 1
raise UserWarning, "precondition X in funct not met"

statement 2
...
statement n

Check out the try / except docs.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,521
Members
44,995
Latest member
PinupduzSap

Latest Threads

Top